RE: [xsl] XPath2 preceding / following axis and attributes

Subject: RE: [xsl] 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/

Current Thread