If your XML limitations are known and your after a pure Perl parser I've found XML::Tiny useful. I've also written a tiny parser of my own very similar to XML::Tiny. Mine is faster and returns results in a format similar to XML::Simple (less nesting of data, which I think accounts for the speed up over XML::Tiny).