Re: [xml-dev] Disk-based XPath Processing

From
Uche Ogbuji <>
To
Tatu Saloranta <>
Date
2006-10-02T03:25:02Z
ID
<>
Thread
Re: [xml-dev] Disk-based XPath Processing
Tatu Saloranta wrote:
> Alas, although there is quite a bit of interest, I
> haven't seen solutions where streaming parsers could
> use some suitable subset of XPath to match sub-trees
> (suitable meaning that only some axes were supported,
> parent/grandparent, attribute, children, but not
> sibling). I have been hoping to investigate doing this
> myself in near future, since it would seem to simplify
> some streaming-oriented tasks (like only building
> small sub-trees, or one sub-tree at a time from a
> bigger document).

What you describe in the above para is pretty much exactly what Amara's
pushbind and pushdom allow, and the trimxml tool that John L. Clark
mentions, exposes this approach on the command line.  They use a subset
of XSLT patterns (which are  themselves a subset of XPath, as defined
int he XSLT 1.0 spec) to drive a streamable operation that only loads
into memory one subtree at a time from a larget document.  I think it
does still need a little baking, but I've been successful using it for
some pretty heavy-duty work.


-- 
Uche Ogbuji                               Fourthought, Inc.
http://uche.ogbuji.net                    http://fourthought.com
http://copia.ogbuji.net                   http://4Suite.org
Articles: http://uche.ogbuji.net/tech/publications/