RE: [xsl] selecting the nearest preceding sibling

Subject: RE: [xsl] selecting the nearest preceding sibling
From: Jarno.Elovirta@xxxxxxxxx
Date: Tue, 13 May 2003 17:16:49 +0300
Hi,
> OK - the node set of all the preceding siblings which 
> fit the criterium is given by 
> 
> preceding-sibling::tag[a]
> 
> The nearest preceding sibling fitting the criterium is 
> the last one in that nodeset (the nodes are always in 
> document order)... that is, 
> 
> preceding-sibling::tag[a and last()]

Wrong. Simple "last()" will always evaluate to a positive number, thus the above will compile to

  preceding-sibling::tag[a]

Furthermore, nodes are always *processed* in document order, but preceding-sibling is a preceding axis and 

  preceding-sibling::tag[a and position() = last()]

will select the first node in document order. You can use 

  (preceding-sibling::tag[a])[position() = last()]

and then you'd get the first preceding sibling. Evan Lenz wrote an article about this stuff <http://www.biglist.com/lists/xsl-list/archives/200201/msg00108.html>.

Cheers,

Jarno - neuroticfish: wakemeup! (club-edit)

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread