[
Lists Home |
Date Index |
Thread Index
]
On Mon, 2005-09-19 at 23:28 -0400, Phil Nash wrote:
> Hi all,
>
> This sounds like something that would be very useful, and obvious -
> and yet after spending quite some time searching I've yet to find a
> concrete implementation! I've caught whispers here and there that it
> can be done, perhaps by hooking into the Saxon or Xalan libraries, but
> in the end it's still elluding me.
>
> So what is it?
>
> I just want to be able to (in Java - and 1.5 is fine) give an XML
> document to a SAX parser and have events fired when certain,
> pre-registered, XPath expressions are matched.
> To put it another way, I want to layer a set of XPath filters over a
> SAX parser.
> Naturally only a subset of XPath is meaningful within the SAX context,
> and ideally I'd like to see a couple of extensions to cater for the
> dynamic nature of SAX parsing (in particular, a way of specifying
> "node tests" for closing tags).
>
> An example could be something like (pseudo code):
>
> SaxPathParser parser = new SaxPathParser();
> parser.AddHandler( "/TestDoc/Node1/Node2", new NodeHandler() );
> parser.AddHandler( "/TestDoc/Node1/text()", new TextHandler() );
> parser.AddHandler( "//Node3/endtag()", new EndTagHandler() );
>
> parser.parse();
>
> I've started an implementation along the above lines that wraps a JAXP
> SAX parser, but handling things like the // operator efficiently is
> something that I'd rather leave to a dedicated library if possible.
>
> So does anyone know of an XPath filter for SAX parsers, or something
> which achieves essentially the same thing? I really don't want to have
> to parse a full DOM tree when I just want to catch a few XPath
> specified nodes.
FWIW, in a long conversation on this point earlier this year I pointed
out that I had in Amara XML Tools a Python framework for just this
capability. I thought a couple of Java folks chimed in that they had
similar. Perhaps look into Nux?
--
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/
|