Wolfgang Laun wrote:
I use ancestor-or-self::* to obtain the node sequence from some node
to the document root.
The outermost/top element of the document isn't interesting, so I add
a predicate, and I find that this works:
[position() != last()]
Apparently, the sequence goes from leaf to root, which is the closing
tag order, as it should be.
Then, I iterate over the sequence, and now the nodes are processed
from root to leaf, which is strange.
It has nothing to do with iteration/for-each I think, XPath 2.0 when
defining a step in a path expression that returns a sequence of nodes
says the following:
"If every evaluation of E2 returns a (possibly empty) sequence of
nodes, these sequences are combined, and duplicate nodes are eliminated
based on node identity. The resulting node sequence is returned in
document order."
Thus if you have
E1/ancestor::*
ancestor::* returns a sequence of nodes but for the result of the
expression duplicates are eliminated and nodes are ordered in document
order.
--
Martin Honnen
http://msmvps.com/blogs/martin_honnen/
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--