Subject: RE: XPath2 preceding / following axis and attributes
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Tue, 10 Jan 2006 11:41:30 -0000
|
> So, as a next attempt, are the following two XPath
> expressions equivalent:
>
>
> someElement/@someAttribute/following::someNodeTest
>
>
> and
>
>
>
> someElement/@someAttribute/../following::someNodeTest
> |
> someElement/@someAttribute/../descendant::someNodeTest
>
Yes, I think so.
Incidentally, I was at one time under the impression that:
following::X ==>
ancestor-or-self::node()/following-sibling::node()/descendant-or-self::X
but unfortunately this breaks when starting at attributes or namespaces
But I think the corresponding equation
preceding::X ==>
ancestor-or-self::node()/preceding-sibling::node()/descendant-or-self::X
is valid.
To make the first equation true you have to have to define a new axis
following::X ==>
ancestor-or-self::node()/following-duckling::node()/descendant-or-self::X
where the ducklings of a node N are all the children of the parent of N
(even when N is an attribute or namespace).
Michael Kay
http://www.saxonica.com/
|