There are no reviews yet. Be the first to send feedback to the community and the maintainers!
INTRODUCTION ============ This module implements a Perl interface to the Gnome libxml2 library which provides interfaces for parsing and manipulating XML files. This module allows Perl programmers to make use of its highly capable validating XML parser and its high performance DOM implementation. IMPORTANT NOTES =============== 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. In 1.59, a new callback API was introduced. This new API is not compatible with the previous one. See XML::LibXML::InputCallback manual page for details. In 1.61 the XML::LibXML::XPathContext module, previously distributed separately, was merged in. An experimental support for Perl threads introduced in 1.66 has been replaced in 1.67. DEPENDENCIES ============ Prior to installation you MUST have installed the libxml2 library. You can get the latest libxml2 version from http://xmlsoft.org/ Without libxml2 installed this module will neither build nor run. Also XML::LibXML requires the following packages: o XML::SAX - base class for SAX parsers o XML::NamespaceSupport - namespace support for SAX parsers These packages are required. If one is missing some tests will fail. Again, libxml2 is required to make XML::LibXML work. The library is not just required to build XML::LibXML, it has to be accessible during run-time as well. Because of this you need to make sure libxml2 is installed properly. To test this, run the xmllint program on your system. xmllint is shipped with libxml2 and therefore should be available. For building the module you will also need the header file for libxml2, which in binary (.rpm,.deb) etc. distributions usually dwell in a package named libxml2-devel or similar. INSTALLATION ============ (These instructions are for UNIX and GNU/Linux systems. For MSWin32, See Notes for Microsoft Windows below.) To install XML::LibXML just follow the standard installation routine for Perl modules: 1 perl Makefile.PL 2 make 3 make test 4 make install # as superuser Note that XML::LibXML is an XS based Perl extension and you need a C compiler to build it. Note also that you should rebuild XML::LibXML if you upgrade libxml2 in order to avoid problems with possible binary incompatibilities between releases of the library. Notes on libxml2 versions ========================= XML::LibXML requires at least libxml2 2.6.16 to compile and pass all tests and at least 2.6.21 is required for XML::LibXML::Reader. For some older OS versions this means that an update of the pre-built packages is required. Although libxml2 claims binary compatibility between its patch levels, it is a good idea to recompile XML::LibXML and run its tests after an upgrade of libxml2. If your libxml2 installation is not within your $PATH, you can pass the XMLPREFIX=$YOURLIBXMLPREFIX parameter to Makefile.PL determining the correct libxml2 version in use. e.g. > perl Makefile.PL XMLPREFIX=/usr/brand-new will ask '/usr/brand-new/bin/xml2-config' about your real libxml2 configuration. Try to avoid setting INC and LIBS directly on the command-line, for if used, Makefile.PL does not check the libxml2 version for compatibility with XML::LibXML. Which version of libxml2 should be used? ======================================== XML::LibXML is tested against a couple versions of libxml2 before it is released. Thus there are versions of libxml2 that are known not to work properly with XML::LibXML. The Makefile.PL keeps a blacklist of the incompatible libxml2 versions using Alien::Libxml2. The blacklist itself is kept inside its "alienfile" file. If Makefile.PL detects one of the incompatible versions, it notifies the user. It may still happen that XML::LibXML builds and pass its tests with such a version, but that does not mean everything is OK. There will be no support at all for blacklisted versions! As of XML::LibXML 1.61, only versions 2.6.16 and higher are supported. XML::LibXML will probably not compile with earlier libxml2 versions than 2.5.6. Versions prior to 2.6.8 are known to be broken for various reasons, versions prior to 2.1.16 exhibit problems with namespaced attributes and do not therefore pass XML::LibXML regression tests. It may happen that an unsupported version of libxml2 passes all tests under certain conditions. This is no reason to assume that it shall work without problems. If Makefile.PL marks a version of libxml2 as incompatible or broken it is done for a good reason. Full linking information for libxml2 can be obtained by invoking "xml2-config --libs". Notes for Microsoft Windows =========================== Thanks to Randy Kobes there is a pre-compiled PPM package available on http://theoryx5.uwinnipeg.ca/ppmpackages/ Usually it takes a little time to build the package for the latest release. If you want to build XML::LibXML on Windows from source, you can use the following instructions contributed by Christopher J. Madsen: These instructions assume that you already have your system set up to compile modules that use C components. First, get the libxml2 binaries from http://xmlsoft.org/sources/win32/ (currently also available at http://www.zlatkovic.com/pub/libxml/). You need: > iconv-VERSION.win32.zip > libxml2-VERSION.win32.zip > zlib-VERSION.win32.zip Download the latest version of each. (Each package will probably have a different version.) When you extract them, you'll get directories named iconv-VERSION.win32, libxml2-VERSION.win32, and zlib-VERSION.win32, each containing bin, lib, and include directories. Combine all the bin, include, and lib directories under c:\Prog\LibXML. (You can use any directory you prefer; just adjust the instructions accordingly.) Get the latest version of XML-LibXML from CPAN. Extract it. Issue these commands in the XML-LibXML-VERSION directory: > perl Makefile.PL INC=-Ic:\Prog\LibXML\include LIBS=-Lc:\Prog\LibXML\lib > nmake > copy c:\Prog\LibXML\bin\*.dll blib\arch\auto\XML\LibXML > nmake test > nmake install (Note: Some systems use dmake instead of nmake.) By copying the libxml2 DLLs to the arch directory, you help avoid conflicts with other programs you may have installed that use other (possibly incompatible) versions of those DLLs. Notes for Mac OS X ================== Due to a refactoring of the module, XML::LibXML will not run with some earlier versions of Mac OS X. It appears that this is related to special linker options for that OS prior to version 10.2.2. Since the developers do not have full access to this OS, help/ patches from OS X gurus are highly appreciated. It is confirmed that XML::LibXML builds and runs without problems since Mac OS X 10.2.6. Notes for HPUX ============== XML::LibXML requires libxml2 2.6.16 or later. There may not exist a usable binary libxml2 package for HPUX and XML::LibXML. If HPUX cc does not compile libxml2 correctly, you will be forced to recompile perl with gcc (unless you have already done that). Additionally I received the following 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 importantly - 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' CONTACT ======= For bug reports, please use the issue tracker at https://github.com/shlomif/perl-XML-LibXML/issues . For suggestions etc. you may contact the maintainer directly at https://www.shlomifish.org/me/contact-me/ , but in general, it is recommended to use the mailing list given below. For suggestions etc., and other issues related to XML::LibXML you may use the perl XML mailing list ([email protected]), where most XML-related Perl modules are discussed. In case of problems you should check the archives of that list first. Many problems are already discussed there. You can find the list's archives and subscription options at http://aspn.activestate.com/ASPN/Mail/Browse/Threaded/perl-xml PACKAGE HISTORY =============== Version < 0.98 were maintained by Matt Sergeant 0.98 > Version > 1.49 were maintained by Matt Sergeant and Christian Glahn Versions >= 1.49 are maintained by Christian Glahn Versions > 1.56 are co-maintained by Petr Pajas Versions >= 1.59 are provisionally maintained by Petr Pajas PATCHES AND DEVELOPER VERSION ============================= As XML::LibXML is open source software, help and patches are appreciated. If you find a bug in the current release, make sure this bug still exists in the developer version of XML::LibXML. This version can be cloned from its Git repository. For more information about that, see: https://github.com/shlomif/perl-XML-LibXML Please consider all regression tests as correct. If any test fails it is most certainly related to a bug. If you find documentation bugs, please fix them in the libxml.dbk file, stored in the docs directory. KNOWN ISSUES ============ The push-parser implementation causes memory leaks.
PySolFC
A comprehensive, feature-rich, open source, and portable, collection of Solitaire games.fortune-mod
Implementation of the Unix fortune command for displaying a random quotation, for Linux and other systems.primesieve-python
Fast prime number generator. Python bindings for the primesieve C++ librarywhat-i-learned-from-porting-to-freebsd
What I Learned from porting my projects to FreeBSDfc-solve
Freecell Solver - a C library for automatically solving Freecell and some other variants of card SolitaireFreenode-programming-channel-FAQ
A Frequently Asked Questions List of the Freenode ##programming Channel.Bezier-Envelope-for-Inkscape
The Bezier Envelope Extension for Inkscapecatable
CATAlyst BLog Engine - written by perl catswhat-you-should-know-about-automated-testing
What you should know about automated software testingtesting-static-sites
Ideas for automated tests of static web sitesgtk3-cmake-examples
gtk3 and cmake exampleshow-to-share-code-online
How to share source code on online forums in order to get help with itshlomi-fish-homepage
Shlomi Fish’s Homepage Sources - www.shlomifish.orgmastering-perl
Previously a copy of the book Mastering Perl as published by O'Reilly. Now Removed.perl5-for-JavaScript
microperl fork (http://themucker.github.io/plu/)perl-XML-RSS
The Repository for the CPAN XML::RSS module for parsing and generating various versions of RSS.Summerschool-at-the-NSA
"Summerschool at the NSA" - a screenplay. Two Hollywood actresses in 2013 conspire to kick the ass of the National Security Agency (NSA), using special warfare that is completely non-violent.shlomif-computer-settings
Shlomi Fish's personal software settings/dot-files/etc.PySolFC-Cardsets
PySolFC Cardsets repositoryperl5-for-JavaScript--take2
perl5 for JS via Emscripten.perl-Config-IniFiles
The Config-IniFiles CPAN Distributionrinutils
C11 / gnu11 utilities C library by Shlomi Fish / Rindolfshlomif-snippets
My Collection of various short, exploratory or demonstrative code files in Perl, Python and other langsgringotts
A Secure Notes ManagerInline-Ruby
Embed and interact with Ruby code from within Perl 5rebookmaker
Generate EPUBs from a .json metadata file and input HTML pages. A FOSS rewrite of setanta's "ebookmaker"black-hole-solitaire
Solvers and statistics for “Golf” solitaire, “Black Hole” solitaire, “All in a Row” solitaire and related card patience games.my-real-person-fan-fiction
Why real person fanfiction could "hurt" actors but not singers, and what to do about itperl-graph-easy
cpanvim-begin
The Vim Beginners’ Siteapp-notifier
HTTP Client/Server For Desktop NotificationsText-Table
CPAN Distribution to render text / ASCII-art / Unicode tablespysol_cards
Python library for dealing cards like PySol FC, MS Freecell/Freecell Pro, or PySol legacyshlomif-tech-diary
Human-Hacking-Field-Guide
A novella titled “The Human Hacking Field Guide” about teenage open source enthusiasts near Los Angeles, Californiaemcc-array-of-pointers-example
emcc array of C strings / C pointers example.KlondikeSolver
Solitaire solver implementation for Klondikebinary-puzzle-garden
Various programs to manipulate the so-called "Binary Puzzle"s which are featured on http://www.binarypuzzle.com/docmake
Docmake is an automated builder from DocBook/XML to its output formats (e.g XHTML5 or PDF). It aims to be a saner replacement for xmlto.perl-Statistics-Descriptive
The Statistics::Descriptive Perl 5/CPAN distributionGraph-Easy-As_svg
The CPAN DistributionHumanity-the-Movie
Sources for the screenplay for the Humanity (the Movie) - a parody about Humanity and modern life in particular.vim-freecell
Vim helpers for viewing/editing freecell solitaire layouts and solutionsFiction-XML
Fiction-Text, Screenplay-Text, Fiction-XML and Screenplay-XML.Buffy-a-Few-Good-Slayers
A screenplay for a Buffy fanfiction set in 2014/2015 in a forked version of the Buffyverse.perl-File-Dir-Dumper
Dump nested directory structures to a stream.patsolve
A solver for Freecell and Seahaven Towersabc-path
Solvers, Generators, etc. for the game ABC Pathperl-XML-LibXSLT
writing-the-perfect-question
Jon Skeet's Writing the Perfect Questionpysol-sound-server
pysol-sound-server to provide sounds and music for PySol FC. Maintenance fork with support for python 3 and future enhancementspysolfc-website
sources for the pysolfc web sitebetter-scm
Sources of the Better-SCM SiteMath-Cephes
A Perl/CPAN Interface to the Cephes Mathematics LibraryxxHash-wrapper
A wrapper for xxHash with some cmake gluezenfilter
Small Python script used to filter TravisCI outputpython-vnu_validator
vnu validator wrappervim-screenplay-text
perl-begin
The Perl Beginners’ Site’ Sourcesvim-faq-notes
Adrian-Ettlinger-Emails-Collection
HTML-Spelling-Site
Spell checking system/framework for an entire static HTML site.shlomif-cmake-modules
test-xml-ordered
putting-cards-2019-2020
Summary of Rindolfism, Shlomi Fish's personal and dynamic philosophy, as of 2019-2020Shlomi-Fish-Back-to-my-Homepage-Logo
The new incarnation of the Back to My Homepage Logo Based on the Logo from the film Back to the Futurecaptioned-image--emma-watson-doesnt-need-a-wand
Captioned Image: Emma Watson played Hermione in the Harry Potters but she doesn't need a wand to kick your ass.fc-solve-site-assets
Freecell Solver's Site Assets (tarballs, downloads, etc.)quad-pres
SQL-Injections--danger-and-prevention
SQL InjectionsDocker-CLI-Wrapper
wrapper for the Docker CLISelina-Mandrake
Selina Mandrake - The Slayer: “caught between post-modernism and the New Age” - a screenplaySQL-Abstract
The CPAN SQL::Abstract ModuleMeToo-me-too
#MeToo me too! The collection of "sexual harassment" quotes where we show that sexy women (and men) are competent and respectedpydistman
python "overkill DRY" distribution managerrakudo-git-master-install
Bash program to install rakudo perl6 git masterfreecell-pro-0fc-deals
Finding zero freecells deals in the fc-pro rangeperl-html-links-localize
cpan-smoke-auto-setup
html-tutorial
dzil-dist-ini-format-documentation
Proposed draft for Dist-Zilla's dist.ini's format documentshlomif-c-snippets
C (and some C++) snippets and short demonstration programs by Shlomi Fish and FriendsCaptioned-Image-Ayn-Rand-to-Christina-Grimmie
A captioned image reading "If Ayn Rand was born in the 1990s, she would be Christina Grimmie.".Star-Trek--We-the-Living-Dead
Star Trek Deep Space Nine: “We, the Living Dead” - a fan fiction screenplay by Shlomi Fishcpandeps
The code behind deps.cpantesters.orgadd-to-word-search.vim
Add more keywords to the search in Vimplea-to-not-use-github-tags-as-releases
A plea (from packagers/etc.) to not use GitHub tags as Releases and instead make regular release tarballs.usr-share-games-fortunes--backup
/usr/share/games/fortunes backupcookiecutter--shlomif-latemp-sites
Common files and skeleton for Shlomi Fish's Latemp sitesmissile-vs-melee-take-three
"Queen Amidala vs. The Klingon Warriors" - an enhanced/modernised version of the David and Goliath story set in a fanfic crossoverred Star Trek and Star Wars universe. "Why can't we have both?" (CC-by)peter-sanders-priority-queues
perl-HTML-Widgets-NavMenu
The-Muppets-Show--The-New-Incarnation
New incarnation of The Muppet Show with themes such as Summer Glau/Chuck Norris/Grammar nazism ; Jenn Lawrence/SLP/Hunger Games ; Harry Potter ; etc.urpmi
The Mageia Linux Software Installation and Management Toolsbook-of-proof--exercises-solutions
Solutions by Shlomi Fish for the Exercises in the book "Book of Proof".perl-Code-TidyAll-Plugin-ClangFormat
clang-format plugin for Code-TidyAlllm-solve-layouts
Captioned-Image-If-You-Wanna-Be-Sad
A captioned image from The Simpsonsperl-Parallel-ForkManager-Segmented
perl-Parallel-ForkManager-Segmentedthe-enemy
Love Open Source and this site? Check out how you can help us