Ian E. Gorman has posted the first alpha of GXParse 1.2, a free (LGPL) Java library that sits on top of a SAX parser and provides semi-random access to the XML document. The documentation isn't very clear, but as near as I can tell, it buffers various contsructs like elements until their end is seen, rather than dumping pieces on you immediately like SAX does.