Re: [xsl] finding the position of a node within a node set

Subject: Re: [xsl] finding the position of a node within a node set
From: Michael Kay <mike@xxxxxxxxxxxx>
Date: Sun, 26 Aug 2012 09:19:58 +0100
On 26/08/2012 09:07, Michael Kay wrote:

On 26/08/2012 07:49, Ihe Onwuka wrote:
Assuming Xpath 2.0 take a look at the index-of function.



No, index-of() is no use because it compares nodes by value rather than by identity.


I overlooked that what you are trying to do is to get the position of the node with a given @id value, rather than a node whose identity is known ($node).

In XPath 2.0, if every node has an @id attribute, and if the nodes are in document order, you could use

index-of($nodes/@id, 'foo')

If some nodes have no id attribute, or if you want to avoid sorting the nodes into document order, you could vary this to

index-of($nodes/string(@id), 'foo')

Michael Kay
Saxonica

Current Thread