Subject: RE: [xsl] Capturing position as a number From: Geert Josten <Geert.Josten@xxxxxxxxxxx> Date: Wed, 18 Mar 2009 19:17:11 +0100 |
Hi Charles, You can do something like: <xsl:variable name="currentpos" select="position()"/> Or: <xsl:variable name="currentpos" select="count(preceding-sibling::CONDITION) + 1"/> Your expression: <xsl:variable name="CurrentCond"><xsl:value-of select="CONDITION[position()]"/></xsl:variable> Creates a root tree fragment with all CONDITION elements that are a child of the context, e.g. the CONDITION element that was matched. I guess the [position()] predicate is not restricting by the way. When looking for some OTHERELEM at the same position, do something like: <xsl:variable name="OtherElem" select="OTHERELEM[position() = $currentpos]"/> Or perhaps prepend a relative path if it is located elsewhere.. Kind regards, Geert > Drs. G.P.H. Josten Consultant http://www.daidalos.nl/ Daidalos BV Source of Innovation Hoekeindsehof 1-4 2665 JZ Bleiswijk Tel.: +31 (0) 10 850 1200 Fax: +31 (0) 10 850 1199 http://www.daidalos.nl/ KvK 27164984 De informatie - verzonden in of met dit emailbericht - is afkomstig van Daidalos BV en is uitsluitend bestemd voor de geadresseerde. Indien u dit bericht onbedoeld hebt ontvangen, verzoeken wij u het te verwijderen. Aan dit bericht kunnen geen rechten worden ontleend. > From: Charles Flanders [mailto:cflanders@xxxxxxxxxx] > Sent: woensdag 18 maart 2009 19:07 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: [xsl] Capturing position as a number > > I need to capture an elements position as an integer to a > variable so I > can use that number in capture the text from another element that > shares the same position number in another part of the tree. > > My XML looks something like this: > > <Document> > <CONDITION> > <HYPERPROC linkend="M16-66A.-HP1">Webbing straps removed</HYPERPROC> > </CONDITION> > <CONDITION> > <HYPERPROC linkend="M16-66A.-HP2">Remote Terminal Unit > Removed</HYPERPROC></CONDITION> > </Document> > > My template: > > > <xsl:template match="CONDITION"> > <xsl:variable name="CurrentCond"><xsl:value-of > select="CONDITION[position()]"/></xsl:variable> > <eqpconds> > <eqpconds-setup-item><condition><xsl:value-of select="."/></condition> > <itemref><link xmlns:xlink="http://www.w3.org/1999/xlink"> > <xsl:attribute name="linkaction">prompt</xsl:attribute> > <xsl:attribute name="linktype">goto</xsl:attribute> > <xsl:attribute namespace="http://www.w3.org/1999/xlink" > name="href"> > <xsl:value-of select="//nameloc[$CurrentCond]/nmlist"/> > <xsl:text>.xml</xsl:text></xsl:attribute> > <xsl:attribute > name="xreftype">wp</xsl:attribute><prompt><xsl:value-of select="."/> > </prompt></link> > </itemref> > </eqpconds-setup-item></eqpconds> > </xsl:template> > > <xsl:template match="HYPERPROC"/> > > Everything I've tried always returns the value of "1". I don't > understand this, I have two CONDITION elements, shouldn't the > second one > have a position value of "2". Any help would be appreciated. > > > > > > > -- > > *Charles Flanders* > > > <mailto:cflanders@xxxxxxxxxx>
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Capturing position as a numbe, Charles Flanders | Thread | Re: [xsl] Capturing position as a n, Martin Honnen |
[xsl] Capturing position as a numbe, Charles Flanders | Date | Re: [xsl] Capturing position as a n, Martin Honnen |
Month |