• Stars
    star
    14
  • Rank 1,396,181 (Top 29 %)
  • Language
    Perl
  • License
    Other
  • Created almost 8 years ago
  • Updated 10 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

The XML-LibXML CPAN Distribution for Processing XML using the libxml2 library
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.

More Repositories

1

PySolFC

A comprehensive, feature-rich, open source, and portable, collection of Solitaire games.
Python
445
star
2

fortune-mod

Implementation of the Unix fortune command for displaying a random quotation, for Linux and other systems.
C
332
star
3

primesieve-python

Fast prime number generator. Python bindings for the primesieve C++ library
Cython
131
star
4

what-i-learned-from-porting-to-freebsd

What I Learned from porting my projects to FreeBSD
115
star
5

fc-solve

Freecell Solver - a C library for automatically solving Freecell and some other variants of card Solitaire
C
56
star
6

Freenode-programming-channel-FAQ

A Frequently Asked Questions List of the Freenode ##programming Channel.
Python
46
star
7

Bezier-Envelope-for-Inkscape

The Bezier Envelope Extension for Inkscape
Python
28
star
8

catable

CATAlyst BLog Engine - written by perl cats
Perl
17
star
9

what-you-should-know-about-automated-testing

What you should know about automated software testing
Perl
14
star
10

testing-static-sites

Ideas for automated tests of static web sites
Makefile
14
star
11

gtk3-cmake-examples

gtk3 and cmake examples
CMake
13
star
12

how-to-share-code-online

How to share source code on online forums in order to get help with it
12
star
13

shlomi-fish-homepage

Shlomi Fish’s Homepage Sources - www.shlomifish.org
HTML
11
star
14

mastering-perl

Previously a copy of the book Mastering Perl as published by O'Reilly. Now Removed.
11
star
15

perl5-for-JavaScript

microperl fork (http://themucker.github.io/plu/)
C
9
star
16

perl-XML-RSS

The Repository for the CPAN XML::RSS module for parsing and generating various versions of RSS.
Perl
9
star
17

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.
Shell
8
star
18

shlomif-computer-settings

Shlomi Fish's personal software settings/dot-files/etc.
Shell
7
star
19

PySolFC-Cardsets

PySolFC Cardsets repository
7
star
20

perl5-for-JavaScript--take2

perl5 for JS via Emscripten.
C
6
star
21

perl-Config-IniFiles

The Config-IniFiles CPAN Distribution
Perl
6
star
22

rinutils

C11 / gnu11 utilities C library by Shlomi Fish / Rindolf
C
5
star
23

shlomif-snippets

My Collection of various short, exploratory or demonstrative code files in Perl, Python and other langs
Perl
5
star
24

gringotts

A Secure Notes Manager
C
5
star
25

Inline-Ruby

Embed and interact with Ruby code from within Perl 5
Perl
5
star
26

black-hole-solitaire

Solvers and statistics for “Golf” solitaire, “Black Hole” solitaire, “All in a Row” solitaire and related card patience games.
Perl
5
star
27

my-real-person-fan-fiction

Why real person fanfiction could "hurt" actors but not singers, and what to do about it
Makefile
5
star
28

vim-begin

The Vim Beginners’ Site
SCSS
4
star
29

app-notifier

HTTP Client/Server For Desktop Notifications
Perl
4
star
30

Text-Table

CPAN Distribution to render text / ASCII-art / Unicode tables
Perl
4
star
31

pysol_cards

Python library for dealing cards like PySol FC, MS Freecell/Freecell Pro, or PySol legacy
Python
4
star
32

shlomif-tech-diary

HTML
4
star
33

emcc-array-of-pointers-example

emcc array of C strings / C pointers example.
JavaScript
4
star
34

Human-Hacking-Field-Guide

A novella titled “The Human Hacking Field Guide” about teenage open source enthusiasts near Los Angeles, California
Shell
4
star
35

perl-Statistics-Descriptive

The Statistics::Descriptive Perl 5/CPAN distribution
Perl
4
star
36

KlondikeSolver

Solitaire solver implementation for Klondike
C++
4
star
37

rebookmaker

Generate EPUBs from a .json metadata file and input HTML pages. A FOSS rewrite of setanta's "ebookmaker"
Python
4
star
38

binary-puzzle-garden

Various programs to manipulate the so-called "Binary Puzzle"s which are featured on http://www.binarypuzzle.com/
Perl
4
star
39

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
4
star
40

perl-graph-easy

cpan
Perl
3
star
41

Graph-Easy-As_svg

The CPAN Distribution
Perl
3
star
42

Humanity-the-Movie

Sources for the screenplay for the Humanity (the Movie) - a parody about Humanity and modern life in particular.
Shell
3
star
43

perl-File-Dir-Dumper

Dump nested directory structures to a stream.
Perl
3
star
44

Fiction-XML

Fiction-Text, Screenplay-Text, Fiction-XML and Screenplay-XML.
Perl
3
star
45

vim-freecell

Vim helpers for viewing/editing freecell solitaire layouts and solutions
Vim Script
3
star
46

Buffy-a-Few-Good-Slayers

A screenplay for a Buffy fanfiction set in 2014/2015 in a forked version of the Buffyverse.
Shell
3
star
47

abc-path

Solvers, Generators, etc. for the game ABC Path
JavaScript
3
star
48

patsolve

A solver for Freecell and Seahaven Towers
C
3
star
49

writing-the-perfect-question

Jon Skeet's Writing the Perfect Question
Makefile
3
star
50

perl-XML-LibXSLT

XSLT
3
star
51

pysol-sound-server

pysol-sound-server to provide sounds and music for PySol FC. Maintenance fork with support for python 3 and future enhancements
C
3
star
52

pysolfc-website

sources for the pysolfc web site
HTML
2
star
53

better-scm

Sources of the Better-SCM Site
Perl
2
star
54

Math-Cephes

A Perl/CPAN Interface to the Cephes Mathematics Library
C
2
star
55

xxHash-wrapper

A wrapper for xxHash with some cmake glue
C
2
star
56

vim-screenplay-text

Vim Script
2
star
57

fcfs-rwlock

C
2
star
58

python-vnu_validator

vnu validator wrapper
HTML
2
star
59

perl-begin

The Perl Beginners’ Site’ Sources
HTML
2
star
60

vim-faq-notes

2
star
61

Adrian-Ettlinger-Emails-Collection

Perl
2
star
62

HTML-Spelling-Site

Spell checking system/framework for an entire static HTML site.
Perl
2
star
63

shlomif-cmake-modules

CMake
2
star
64

test-xml-ordered

Perl
2
star
65

captioned-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.
Makefile
2
star
66

Shlomi-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 Future
Python
2
star
67

pydistman

python "overkill DRY" distribution manager
Python
2
star
68

fc-solve-site-assets

Freecell Solver's Site Assets (tarballs, downloads, etc.)
Ruby
2
star
69

SQL-Injections--danger-and-prevention

SQL Injections
Ruby
2
star
70

Docker-CLI-Wrapper

wrapper for the Docker CLI
Perl
2
star
71

Selina-Mandrake

Selina Mandrake - The Slayer: “caught between post-modernism and the New Age” - a screenplay
Shell
2
star
72

SQL-Abstract

The CPAN SQL::Abstract Module
Perl
2
star
73

MeToo-me-too

#MeToo me too! The collection of "sexual harassment" quotes where we show that sexy women (and men) are competent and respected
Makefile
2
star
74

rakudo-git-master-install

Bash program to install rakudo perl6 git master
Shell
2
star
75

freecell-pro-0fc-deals

Finding zero freecells deals in the fc-pro range
Shell
2
star
76

quad-pres

Perl
2
star
77

perl-html-links-localize

Perl
2
star
78

cpan-smoke-auto-setup

Perl
2
star
79

html-tutorial

CSS
2
star
80

dzil-dist-ini-format-documentation

Proposed draft for Dist-Zilla's dist.ini's format document
2
star
81

shlomif-c-snippets

C (and some C++) snippets and short demonstration programs by Shlomi Fish and Friends
C++
2
star
82

Captioned-Image-Ayn-Rand-to-Christina-Grimmie

A captioned image reading "If Ayn Rand was born in the 1990s, she would be Christina Grimmie.".
Makefile
2
star
83

Star-Trek--We-the-Living-Dead

Star Trek Deep Space Nine: “We, the Living Dead” - a fan fiction screenplay by Shlomi Fish
Shell
2
star
84

cookiecutter--shlomif-latemp-sites

Common files and skeleton for Shlomi Fish's Latemp sites
XSLT
2
star
85

cpandeps

The code behind deps.cpantesters.org
Perl
2
star
86

zenfilter

Small Python script used to filter TravisCI output
Python
2
star
87

putting-cards-2019-2020

Summary of Rindolfism, Shlomi Fish's personal and dynamic philosophy, as of 2019-2020
Perl
2
star
88

add-to-word-search.vim

Add more keywords to the search in Vim
Vim Script
2
star
89

plea-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.
2
star
90

usr-share-games-fortunes--backup

/usr/share/games/fortunes backup
Shell
2
star
91

missile-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)
Perl
2
star
92

peter-sanders-priority-queues

C
2
star
93

perl-HTML-Widgets-NavMenu

Perl
2
star
94

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.
Shell
2
star
95

book-of-proof--exercises-solutions

Solutions by Shlomi Fish for the Exercises in the book "Book of Proof".
TeX
1
star
96

Captioned-Image-If-You-Wanna-Be-Sad

A captioned image from The Simpsons
Makefile
1
star
97

urpmi

The Mageia Linux Software Installation and Management Tools
Perl
1
star
98

lm-solve-layouts

1
star
99

perl-Parallel-ForkManager-Segmented

perl-Parallel-ForkManager-Segmented
Perl
1
star
100

the-enemy

HTML
1
star