[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Diagram of XPath axes

Subject: Re: Diagram of XPath axes
From: Michael Kay <mike@xxxxxxxxxxxx>
Date: Fri, 25 May 2012 00:04:01 +0100
Re:  Diagram of XPath axes
On 24/05/2012 18:02, Imsieke, Gerrit, le-tex wrote:
Just a side note: If you want to select the preceding elements *including the ancestors*, use the XPath 2 << operator [1], which selects the nodes that precede the current in document order [2].

In XSLT: select="*[. &lt;&lt; current()]"

It would be interesting to see a performance comparison of

//*[. << current()]


ancestor::* | preceding::*

Both are rather heavily exposed to testing the relative order of two nodes in document order, which in some tree implementations (e.g. DOM) can be very inefficient.

If you don't care about document order, however, (ancestor::*, preceding::*) should be fastest.

There's also (ancestor::*/(. | (preceding-sibling::*/descendant::*))) if anyone wants to try it out.

I do wish we had an "until" operator, so we could do //* until (. is current()). You can do that of course with a recursive function.

Michael Kay

Michael Kay

Current Thread


Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
First Name
Last Name
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.