XML::LibXML =========== 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. IMPORTANT NOTE ============== 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. Dependencies ============ Prior to installation you MUST have installed the libxml2 library. You can get the latest libxml2 version from http://xmlsoft.org 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 and XML::LibXML::NodeList::Iterator These packages are required. If one is missing some tests most likely will fail. Installation ============ Then run: $ perl Makefile.PL $ make test $ su $ make install Note On libxml2 Versions libxml2 claims binary compatibility between its patch levels. This is not all true: 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 their installation. 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 XML::LibXML::Node. 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. e.g. $ XMLPREFIX=/usr/brand-new perl Makefile.PL will ask '/usr/brand-new/bin/xml2-config' about your real libxml2 configuration. 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.25, tested, not working past 2.4.25, tested, working past 2.5.0 , tested, working version 2.5.5 , tested, working, but known as broken version 2.5.6 , tested, 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 > modules > > The combination that worked best for me was: > gcc > GNU make > > Most important - before trying to install Perl modules that depend on > libxml2: > > 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: > > /usr/local/bin/xml2-config > /usr/local/bin/xslt-config > > 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 http://theoryx5.uwinnipeg.ca/ppmpackages/ Usually it takes a little time to build the package for the latest release. Contact ======= For suggestions, bugreports etc. you may contact the maintainer directly christian.glahn@uibk.ac.at Also XML::LibXML issues are discussed among other things on the perl XML mailing list (perl-xml@listserv.ActiveState.com) Package History =============== 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 License ======= 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. DISCLAIMER ========== 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.