xsl-list
[Top] [All Lists]

RE: selecting the nearest preceding sibling

2003-05-13 07:16:49
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



<Prev in Thread] Current Thread [Next in Thread>