[jdom-interest] XPath.selectNodes(doc) via Jaxen: nodes not in
jhunter at xquery.com
Mon Aug 16 10:42:36 PDT 2004
> At 11:36 AM +0200 8/16/04, Kai Wörner wrote:
>> Hi List,
>> as far as I've understood the documentation, a xpath.selectNodes() should
>> return a list including the xpath results in document order. Given the
>> following XML:
> That's not always true. Reverse axes such as ancestor and
> ancestor-or-self should return their node lists in reverse document
> order. However the descendant-or-self axis you're using is a forward
> axis, so that does look like a bug. It's probably in Jaxen, not JDOM,
> though; so that's where it would need to be fixed.
Reverse axes are evaluated in reverse document order when applying
positional predicates. That's for sure. But the result of any XPath is
always a sequence of nodes in document order, and I can't find anything
in the XPath 1.0 spec to contradict this.
/a/b/c/ancestor::* returns the same as (/a, /a/b) not (/a/b, /a).
/a/b/c/ancestor::* returns the same as /a/b.
This is made more explicit in the XQuery 1.0 spec referring to XPath 2.0
fn:string-join(for $n in ancestor-or-self::* return name($n), '/')
More information about the jdom-interest