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

Re: Quick Xpath


xpath descendant node
One implementation is easy, just as proof of concept, but is not likely to
be optimal.  If it's your own flavor of DOM to which XPath processing is
applied, and the DOM can be assumed to be read-only, each node can be
constructed to carry its index in document order, allowing a trivial sort
after nodes were found by the Xpath processor, using the DOM implementation
secret sauce.  You could relax the read-only assumption at the cost of a
major renumbering each time the DOM was modified.

I think the following is a germ of another scheme by which each node carries
the number of descendants it has.  To compute the document order index of a
node, you do something like this (too little time to nail down the details):

  let sum =0
     for ancestor = self to root by getParent(ancestor) do
         sum = sum + 1     // each ancestor, including self, counts 1
         // each preceding sibling contributes itself and all its
descendants
         for all preceding siblings of ancestor do
              sum =  sum + 1 + descendant-node-count(sibling)

This is slower for finding the doc order index of a node, but faster for
recomputing indexes when modifying the DOM.  Any change of the DOM tree gets
propagated in an obvious way to the descendant-node-counts of the ancestors
up to the root, but the other nodes don't have to be changed.

Jeff

----- Original Message -----
From: "bob mcwhirter" <bob@w...>
To: "Jeni Tennison" <jeni@j...>
Cc: <xml-dev@l...>
Sent: Wednesday, July 17, 2002 4:21 PM
Subject: Re:  Quick Xpath


>
> Howsabout given:
>
> (//foo | //bar)[4]
>
> Would that be the 4th occurrence of either foo or bar, in document
> order?  That's just an implementational nightmare.



PURCHASE STYLUS STUDIO ONLINE TODAY!

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.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
 

Stylus Studio has published XML-DEV in RSS and ATOM formats, enabling users to easily subcribe to the list from their preferred news reader application.


Stylus Studio Sponsored Links are added links designed to provide related and additional information to the visitors of this website. they were not included by the author in the initial post. To view the content without the Sponsor Links please click here.

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.