Christian Glahn > XML-LibXML-1.54 > XML::LibXML::SAX::Parser

Download:
XML-LibXML-1.54.tar.gz

Dependencies

Annotate this POD

CPAN RT

New  3
Open  6
Stalled  8
View Bugs
Report a bug
Module Version: 1.50   Source  

NAME ^

XML::LibXML::SAX::Parser - LibXML DOM based SAX Parser

SYNOPSIS ^

  my $handler = MySAXHandler->new();
  my $parser = XML::LibXML::SAX::Parser->new(Handler => $handler);
  $parser->parse_uri("foo.xml");

DESCRIPTION ^

This class allows you to generate SAX2 events using LibXML. Note that this is not a stream based parser, instead it parses documents into a DOM and traverses the DOM tree. The reason being that libxml2's stream based parsing is extremely primitive, and would require an extreme amount of work to allow SAX2 parsing in a stream manner.

WARNING ^

WARNING WARNING WARNING

This is NOT a streaming SAX parser. As I said above, this parser reads the entire document into a DOM and serialises it. Some people couldn't read that in the paragraph above so I've added this warning.

There are many reasons, but if you want to write a proper SAX parser using the libxml2 library, please feel free and send it along to me.

API ^

The API is exactly the same as any other Perl SAX2 parser. See XML::SAX::Intro for details.

Aside from the regular parsing methods, you can access the DOM tree traverser directly, using the generate() method:

  my $parser = XML::LibXML::SAX::Parser->new(...);
  $parser->generate($dom_tree);

This is useful for serializing DOM trees, for example that you might have done prior processing on, or that you have as a result of XSLT processing.