Well, here's the thing - I usually take whatever I've got access to (libxml, built in Java XML, whatever) and wrap it so that it works the way I like it. That works. But, it's struck me that there's probably one out there that works just the way I want it to. I want to be able to use XPath to get nodes and list of nodes easily and I want to be able to do stuff like float val = node->attribute["xcoord"]; or whatever and have it give me a variable of type float even though the xml might read xcoord="10" Anyone have any suggestions? libxml works but I'm not fond of it. I want a system where it reads in the XML file all at once and stores it in a nice tree, so SAX is out (I believe)..