xsl-list
[Top] [All Lists]

RE: preceding-sibling reversed ?

2002-08-29 04:59:55

I'm still a bit perplexed. If you evaluate a nodeset in a 
string context then only the first node in the nodeset is 
considered. That's why
      following-sibling::div[(_at_)class = 'slide']/@id is the same as
      following-sibling::div[(_at_)class = 'slide'][1]/@id.
On the other hand, 
      preceding-sibling::div[(_at_)class = 'slide']/@id is the same as
      preceding-sibling::div[(_at_)class = 'slide'][last()]/@id.

So it seems as if the reversed axis doesn't come into play - 
of the entire nodeset, only the first is considered, but it's 
the first in *document order*. Why?

A positional predicate in a step of a path expression considers the
nodes in axis order: so for a reverse axis, [1] selects the last node in
document order.

XSLT always processes node-sets in document order, and the conversion of
a node-set to a string always uses the node that is first in document
order; the axis that was used to select the nodes is irrelevant.

Michael Kay
Software AG
home: Michael(_dot_)H(_dot_)Kay(_at_)ntlworld(_dot_)com
work: Michael(_dot_)Kay(_at_)softwareag(_dot_)com 


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



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