It might help to answer your question if we knew what you want to do with the tree.
One of the disadvantages of a complex tree structure is the tedium of navigating it to access the data you want. In the XML world, the XPath query language is great for pulling data out of the DOM tree. So having a parser that uses a generic tree module without XPath support doesn't sound particularly appealing.
The most popular XML module is probably XML::LibXML. Its tree nodes and XPath query engine are implemented in the libxml2 C library. This has a huge performance advantage over modules that implement their tree with Perl data structures since Perl has more overheads.