Subject: RE: Re[2]: [xsl] finding position() of an element in a different context From: "John Wang" <jwang@xxxxxxxxxxx> Date: Thu, 26 Apr 2001 12:36:27 -0500 |
Here is possible correction, I am not sure this is what you want. xml: <?xml version="1.0"?> <top> <visits> <visit id="visit1Name"/> <visit id="visit2Name"/> </visits> <formtypes> <formtype id="formtype1Name"/> <formtype id="formtype2Name"/> </formtypes> <forms> <form visitID="visit1Name" formtypeID="formtype1Name">form1</form> <form visitID="visit1Name" formtypeID="formtype2Name">form2</form> <form visitID="visit2Name" formtypeID="formtype3Name">form3</form> </forms> </top> xsl: <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html"/> <xsl:variable name="formtypeID">formtype2Name</xsl:variable> <xsl:variable name="visitID">visit1Name</xsl:variable> <xsl:template match="/"> <html> <body> <xsl:variable name="matchingForm" select="//forms/form[(@formtypeID = $formtypeID) and (@visitID = $visitID)]"/> <xsl:value-of select="$matchingForm"/> </body> </html> </xsl:template> </xsl:stylesheet> This xsl will pick up one entry which is "form2" -John -----Original Message----- From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx]On Behalf Of Kevin Burges Sent: Wednesday, April 25, 2001 2:56 PM To: Oliver Becker Subject: Re[2]: [xsl] finding position() of an element in a different context Hi Oliver, OB> Just count the preceding siblings: OB> count($matchingForm/preceding-sibling::*)+1 they might not always be siblings, but I could probably just use preceding:: to do the job. I've remembered another part of the problem. Look at the structure again: <top> <visits> <visit id="visit1Name"/> <visit id="visit2Name"/> </visits> <formtypes> <formtype id="formtype1Name"/> <formtype id="formtype2Name"/> </visits> <forms> <form visit="visit1Name" formtype="formtype1Name"/> <form visit="visit1Name" formtype="formtype2Name"/> <form visit="visit2Name" formtype="formtype2Name"/> </forms> </top> Am I not right in saying that if I am in the context of a <visit> element, doing: <xsl:variable name="matchingForm" select="//forms/form[(@formtypeID = $formtypeID) and (@visitID = $visitID)]"/> will not work, because "//forms" is taken relative to the context node? Certainly this seems to be happening, as no matches are occurring. Is there a way to make this work? -- groovy baby, Kevin mailto:xmldude@xxxxxxxxxxxxxxxx ++++++++++++ Cool music - http://mp3.com/marshan ++++++ Attitude Webzine - http://burieddreams.com/attitude XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: Re[2]: [xsl] finding position(), Michael Kay | Thread | [xsl] Passing Parameters to xsl:sor, Brucato, Greg |
Re: [xsl] XPath and XLink for begin, bill french | Date | Re: [xsl] soft returns/wrap not dis, David Carlisle |
Month |