[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] position() outside for-each


Subject: Re: [xsl] position() outside for-each
From: "Charles Ohana" <charles.ohana@xxxxxxxxxxxxxx>
Date: Tue, 13 Nov 2007 18:01:55 -0500

I need the position of the (item) node. In my case (the snippet I sent) I'm expecting the following output.
1 : XYZ
2 : A23
3 : z49
4 : X12



Thanx


----- Original Message ----- From: "Scott Trenda" <Scott.Trenda@xxxxxxxx>
To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx>
Sent: Tuesday, November 13, 2007 5:57 PM
Subject: RE: [xsl] position() outside for-each



What position are you trying to determine, exactly? Do you have any sorting applied when you apply-templates to /root/item? Are you trying to determine the position of the node within its parent node, the position of the node within the document, the position of the node within the context node-set...? There's lots of different ways you can ask for the position of a node, but the position() function will follow a very specific algorithm every time. You can retrieve a variety of different results with the <xsl:number/> element:

<xsl:template match="/root/item">
 <xsl:number level="single" count="item" format="1:"/>
 <xsl:value-of select="@id"/>
</xsl:template>

~ Scott

-----Original Message-----
From: Charles Ohana [mailto:charles.ohana@xxxxxxxxxxxxxx]
Sent: Tuesday, November 13, 2007 4:39 PM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: [xsl] position() outside for-each

Hello,
I'm trying to determine the position of a node, the issue is that it's
within a for-each loop.
See snippet below to see what I'm trying to accomplish. Thanx

<root>
  <item id="XYZ" />
  <item id="A23" />
  <item id="z49" />
  <item id="X12" />
</root>

<xsl:template match="/root/item">
  <xsl:value-of select="position()" />
  <xsl:text>:</xsl:text>
  <xsl:value-of select="@id" />
</xsl:template>


Current Thread