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.