in reply to Definitive/Favorite Perl XML DOM + XSLT interface?

Yes, it's an admitted fault that XML::LibXML isn't fully compliant to the DOM. The problem is we had to write our own DOM methods on top of the library, because libxml2's idea of "dom" is not the same as the W3C's (because of several reasons I won't go into). If there are areas you consider us particularly lacking, then please submit a bug on

However now there's a new contender - XML::GDOME, which builds on the libgdome library to provide a full implementation of W3C DOM level 2. If it's conformance you're after primarily, I'd go for GDOME. However I really think you'll miss access to XPath (though that's intended to come with the next release of XML::GDOME, so you may not be waiting much longer).

As far as XSLT goes, you really can't beat XML::LibXSLT for performance and compliance. It's almost as fast as MSXML's XSLT implementation (the known fastest one), and supports exslt extensions and a number of other niceties.

Also, I have yet to try it, but I hear XML::GDOME can now convert a tree to XML::LibXML format, which will allow you now to use XML::GDOME trees in XSLT transformations. Neat huh?

  • Comment on Re: Definitive/Favorite Perl XML DOM + XSLT interface?

Replies are listed 'Best First'.
Re: Re: Definitive/Favorite Perl XML DOM + XSLT interface?
by lestrrat (Deacon) on Jan 21, 2002 at 02:04 UTC

    Thanks for you input, everybody... much appreciated.

    Functionality wise I guess I'm now pretty fixed on XML::LibXML + XML::LibXSLT.

    The downside for me is the incompatibility with other CPAN modules, and the fact that I find its documentation really hard to read ( if and when I do get more comfortable with this module, I will contribute documentation. But I'm still a long ways from there ). I guess I could always dump/restore XML between XML::DOM and XML::LibXML if I really need to ... I know it's a waste, but, that's the one sure fool proof way to convert between these two, I think.

    And I will surely be keeping an eye out for XML::GDOME. However, I think that module is still a little too alpha for me to use right now. Thanks for the info, though