This module implements much of the DOM Level 2 API as an
interface to the Gnome libxml2 library. This makes it a fast
and highly capable validating XML parser library, as well as
a high performance DOM.
XML::LibXML was almost entirely reimplemented between version 1.40
to version 1.49. This may cause problems on some production machines.
with version 1.50 a lot of compatibility fixes were applied, so
programs written for XML::LibXML 1.40 or less should run with
version 1.50 again.
Prior to installation you MUST have installed the libxml2
library. You can get the latest libxml2 version from
Also XML::LibXML requires the following packages:
XML::LibXML::Common - node type symbols and encoding functions
XML::SAX - DOM building support from SAX
XML::NamespaceSupport - DOM building support from SAX
XML::NodeFilter - Filter Class for XML::LibXML::Iterator
These packages are required. If one is missing some tests most likely
$ perl Makefile.PL
$ make test
$ make install
Note On libxml2 Versions
libxml2 claims binary compatibility between its patch levels. This is not
First of all XML::LibXML requires at least libxml2 2.4.20. For most OS this
means that an update of the prebuild packages is required, since most
distributors ship ancient libxml2 versions most users will need to upgrade
If you already run an older version of XML::LibXML and you wish to upgrade
to a bug fixed version of libxml2, you can upgrade the libraries from
libxml2 2.4.20 to 2.4.24 without recompiling XML::LibXML. libxml2 2.4.25
and later versions are not 100% binary compatible to older versions. So
if you intend to upgrade to such a version you will need to recompile
XML::LibXML as well.
Users of perl 5.005_03 and perl 5.6.1 with thread support will also like
to avoid libxml2 version 2.4.25 and use later versions instead.
Parser documentation is in perldoc XML::LibXML. DOM documentation
starts in perldoc XML::LibXML::Document and perldoc
If your libxml2 installation is not within your $PATH. you can set
the environment variable XMLPREFIX=$YOURLIBXMLPREFIX to make
XML::LibXML recognize the correct libxml2 version in use.
$ XMLPREFIX=/usr/brand-new perl Makefile.PL
will ask '/usr/brand-new/bin/xml2-config' about your real
Which libxml2 version are tested with XML::LibXML?
This little table gives a clue which versions of libxml2 will run with
the version of XML::LibXML of this release.
prior 2.4.20, not tested, not working
version 2.4.20, tested, working
version 2.4.21, tested, working
version 2.4.22, tested, working
version 2.4.23, tested, working
version 2.4.24, tested, working
version 2.4.25, tested, not working
version 2.4.26, tested, working
version 2.4.27, tested, working
past 2.4.27, tested, not working
prior 2.5.6 , tested, not working
version 2.5.7 , tested, working
NOTES FOR HPUX
XML::LibXML requires libxml2 2.4.20 or later. That means the current
binary libxml2 package for HPUX cannot be used with XML::LibXML. For
some reasons the HPUX cc will not compile libxml2 correct, which will
force you to recompile perl with gcc (if you havn't already done that).
Additionally I got these Note from Rozi Kovesdi:
> Here is my report if someone else runs into the same problem:
> Finally I am done with installing all the libraries and XML Perl
> The combination that worked best for me was:
> GNU make
> Most important - before trying to install Perl modules that depend on
> must set SHLIB_PATH to include the path to libxml2 shared library
> assuming that you used the default:
> export SHLIB=/usr/local/lib
> also, make sure that the config files have execute permission:
> they did not have +x after they were installed by 'make install'
> and it took me a while to realize that this was my problem
> or one can use:
> perl Makefile.PL LIBS='-L/path/to/lib' INC='-I/path/to/include'
NOTES FOR Mac OS X
XML::LibXML 1.54 is known not to work with Max OS X because of the known
'flat namespace' linking problem. This leads to conflicts with
XML::LibXML::Common. I am aware that there are sollutions to this
problem, but because of a lack of hardware I was not able to solve this
problem for this release.
NOTES FOR M$ Windows
Thanks to Randy Kobes there is a precompiled PPM package available on
Usually it takes a little time to build the package for the latest
For suggestions, bugreports etc. you may contact the maintainer directly
Also XML::LibXML issues are discussed among other things on the
perl XML mailing list (perl-xml@listserv.ActiveState.com)
Version < 0.98 were maintained by Matt Sergeant
0.98 > Version > 1.49 were maintained by Matt Sergeant and Christian Glahn
Version >= 1.49 are maintained by Christian Glahn
This is free software, you may use it and distribute it under the same
terms as Perl itself.
Copyright 2001-2002 AxKit.com Ltd, All rights reserved.
THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.