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.
in reply to The best way to handle different type of XML files
Best of luck,