I'm also a fan of XML::LibXML, but I'd also put in a suggestion that you may want to consider combining it with XML::LibXSLT. I've recently been through a similar situation (although I didn't have the luxury of only dealing with XML as input), and I found that life became much simpler when I developed a single unified XML schema that closely reflected my MySQL database table structure, for which I could then easily write a database loader module. At that point it became fairly straightforward to write XSLT stylesheet documents to convert the myriad input XML formats into the database-compliant schema format. It's possible this approach is a bit over-engineered compared to the XML::Simple approach, but then again it is much easier to maintain in the long run.
Best of luck,