Tatsuhiko Miyagawa > XML-Liberal-0.11 > XML::Liberal

Download:
XML-Liberal-0.11.tar.gz

Dependencies

Annotate this POD

CPAN RT

Open  0
Report a bug
Module Version: 0.11   Source   Latest Release: XML-Liberal-0.22

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