On 28/07/2010 17:11, 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.
The sequence returned by a path expression is always in document order so
(ancestor-or-self::*)[position()!=1]
would return the elements you want.
However the predicates that appear within a step are not filtering the
entire sequence returned they are a separate syntactic construct, and
they number in the direction of the axis used. which is backwards for
ancestor-or-self so, as you observe
ancestor-or-self::*[position() != last()]
selects the same elements.
[] in a step is a predicate
http://www.w3.org/TR/xpath20/#id-predicates
[] applied to a sequence is a filter
http://www.w3.org/TR/xpath20/#id-filter-expr
David
________________________________________________________________________
The Numerical Algorithms Group Ltd is a company registered in England
and Wales with company number 1249803. The registered office is:
Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom.
This e-mail has been scanned for all viruses by Star. The service is
powered by MessageLabs.
________________________________________________________________________
--~------------------------------------------------------------------
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>
--~--