NAME

XML::Liberal - Super liberal XML parser that parses broken XML

SYNOPSIS

use XML::Liberal;

my $parser = XML::Liberal->new('LibXML');
my $doc = $parser->parse_string($broken_xml);

# or, override XML::LibXML->new globally
use XML::LibXML;
use XML::Liberal;

XML::Liberal->globally_override('LibXML');

my $parser = XML::LibXML->new; # isa XML::Liberal

DESCRIPTION

XML::Liberal is a super liberal XML parser that can fix broken XML stream and create a DOM node out of it.

This module is ALPHA SOFTWARE and its API and internal class layouts etc. are subject to change later.

METHODS

new
$parser = XML::Liberal->new('LibXML');

Creates an XML::Liberal object. Currently accepted driver is only LibXML.

globally_override
XML::Liberal->globally_override('LibXML');

Override XML::LibXML's new method globally, to create XML::Liberal object instead of XML::LibXML parser.

This is considered so evil, but would be useful if you have existent software/library that uses XML::LibXML inside and change the behaviour globally to use Liberal parser instead, with a single method call.

For example, the following code lets XML::Atom's parser use Liberal LibXML parser.

use URI;
use XML::Atom::Feed;
use XML::Liberal;

XML::Liberal->globally_override('LibXML');

# XML::Atom calls XML::LibXML->new, which is aliased to Liberal now
my $feed = XML::Atom::Feed->new(URI->new('http://example.com/atom.xml'));

BUGS

This module tries to fix the XML data in various ways, some of which might alter your XML content, especially bytes written in CDATA.

AUTHOR

Tatsuhiko Miyagawa <miyagawa@bulknews.net>

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

SEE ALSO

XML::LibXML