>The questions I'm left with is if I want to fill another data structure with >the output of the first, how can I do that the fastest
Create a class which builds your new data structure from a SAX stream, and route Xalan's SAX output to that. Sax is essentially our "native output" representation. There is a slightly earlier (ResultTreeHandler) stage which isn't exactly SAX -- it handles attributes as separate events, for example, and may not include all the namespace declarations -- but I really wouldn't recommend you attempt to interface to it.
