DOM may be terrible in some ways, but it's not LibXML's fault for following it. People expect that nearly any widely used language out there will have a DOM parser. That way, we can all suffer equally.

All I want is the most powerful and best XML parser available. XML::LibXML is fast, linked to a very common lib, and regularly updated. However, it's bedside manner has something to be desired. XML::Simple has been regarded as the easier of the two, but not the best.

Why does both have to suck in opposite but equal manners? What's wrong with having both the power of the methods and tying it to a hash tree? You can put a hash tree on top of the methods. What's wrong with something like this?