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

RE: [xsl] index of an element among its type


Subject: RE: [xsl] index of an element among its type
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Thu, 10 Feb 2005 14:16:59 -0000

The position() function does not give "the position of an element in an XML
file". It gives the position of the element in the sequence of nodes that
you are currently processing.

So if you do xsl:for-each select="author", then position() will give you the
position among all the author elements; if you use xsl:for-each select="*",
it will give you the position among all the child elements, and if you do
xsl:for-each select="*[@id]", it will give you the position among all the
child elements that have an @id attribute.

You best approach here is to use <xsl:number>

Michael Kay
http://www.saxonica.com/

> -----Original Message-----
> From: Ahmed El-dawy [mailto:aseldawy@xxxxxxxxx] 
> Sent: 10 February 2005 13:15
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] index of an element among its type
> 
> I want to find the position() of an element in an xml file 
> among its type.
> for example
> <book>
> <title>Introduction to Algorithms</title>
> <author>Cormen</author>
> <author>Leiserson</author>
> ...
> <author>Rivest</author>
> </book>
> 
> I want to get (1) for Cormen, (2) for Leiserson and (3) for Rivest.
> using the normal position() function will return 2,3 and 5 
> resepctively.
> 
> Thanks in advance
> 
> 
> -- 
> Regards,
> Ahmed Saad


Current Thread
Keywords
xml