[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
Re: [xsl] Determining the position of a specific node in the context
Subject: Re: [xsl] Determining the position of a specific node in the context From: David Carlisle <davidc@xxxxxxxxx> Date: Fri, 20 Oct 2006 10:01:33 +0100 |
> "Give me the position of a specific node in the context" so long as by context you mean what the spec means, which is its position in the current sequence (current node list in 1.0 terminology) not its position in the input tree. position() never relates to teh input tree at all, the same node will have diffeerent values of position() depending on how it was selected, for example if it is selected with self:: or parent:: it will have position()=1. <xsl:variable name="p" select="(node()[...predicate...]/position())[1]"/> with the [1] added to make it a singleton, and is equivalently still best written in XPath 1 as <xsl:variable name="p" select="count(node()[...predicate...][1]/preceding-sibling::node()) + 1"/> they are not equivaent. The first one will always return 1 as the first position in a sequence is always 1. The second one returns the position in the sequence of child nodes of teh selected predicate, if there is 1, and 0 otherwise. (Beware though usually when doing thois sort of thing you want to use * rather than node() otherwise you will be thrown off by indentation white space, comments etc. David 1
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Determining the position , Christian Roth | Thread | RE: [xsl] Determining the position , Michael Kay |
Re: [xsl] Another (positional?) gro, Rudolf P . Weinmann | Date | RE: [xsl] Another (positional?) gro, Michael Kay |
Month |
Keywords