XML::Handler::BuildDOM(3pm) User Contributed Perl Documentation XML::Handler::BuildDOM(3pm)NAME
XML::Handler::BuildDOM - PerlSAX handler that creates XML::DOM document structures
SYNOPSIS
use XML::Handler::BuildDOM;
use XML::Parser::PerlSAX;
my $handler = new XML::Handler::BuildDOM (KeepCDATA => 1);
my $parser = new XML::Parser::PerlSAX (Handler => $handler);
my $doc = $parser->parsefile ("file.xml");
DESCRIPTION
XML::Handler::BuildDOM creates XML::DOM document structures (i.e. XML::DOM::Document) from PerlSAX events.
This class used to be called XML::PerlSAX::DOM prior to libxml-enno 1.0.1.
CONSTRUCTOR OPTIONS
The XML::Handler::BuildDOM constructor supports the following options:
* KeepCDATA => 1
If set to 0 (default), CDATASections will be converted to regular text.
* Document => $doc
If undefined, start_document will extract it from Element or DocType (if set), otherwise it will create a new XML::DOM::Document.
* Element => $elem
If undefined, it is set to Document. This will be the insertion point (or parent) for the nodes defined by the following callbacks.
* DocType => $doctype
If undefined, start_document will extract it from Document (if possible). Otherwise it adds a new XML::DOM::DocumentType to the Docu-
ment.
perl v5.8.8 2008-02-03 XML::Handler::BuildDOM(3pm)
Check Out this Related Man Page
XML::Filter::SAXT(3) User Contributed Perl Documentation XML::Filter::SAXT(3)NAME
XML::Filter::SAXT - Replicates SAX events to several SAX event handlers
SYNOPSIS
$saxt = new XML::Filter::SAXT ( { Handler => $out1 },
{ DocumentHandler => $out2 },
{ DTDHandler => $out3,
Handler => $out4
}
);
$perlsax = new XML::Parser::PerlSAX ( Handler => $saxt );
$perlsax->parse ( [OPTIONS] );
DESCRIPTION
SAXT is like the Unix 'tee' command in that it multiplexes the input stream to several output streams. In this case, the input stream is a
PerlSAX event producer (like XML::Parser::PerlSAX) and the output streams are PerlSAX handlers or filters.
The SAXT constructor takes a list of hash references. Each hash specifies an output handler. The hash keys can be: DocumentHandler, DTDHan-
dler, EntityResolver or Handler, where Handler is a combination of the previous three and acts as the default handler. E.g. if Documen-
tHandler is not specified, it will try to use Handler.
EXAMPLE
In this example we use XML::Parser::PerlSAX to parse an XML file and to invoke the PerlSAX callbacks of our SAXT object. The SAXT object
then forwards the callbacks to XML::Checker, which will 'die' if it encounters an error, and to XML::Hqandler::BuildDOM, which will store
the XML in an XML::DOM::Document.
use XML::Parser::PerlSAX;
use XML::Filter::SAXT;
use XML::Handler::BuildDOM;
use XML::Checker;
my $checker = new XML::Checker;
my $builder = new XML::Handler::BuildDOM (KeepCDATA => 1);
my $tee = new XML::Filter::SAXT ( { Handler => $checker },
{ Handler => $builder } );
my $parser = new XML::Parser::PerlSAX (Handler => $tee);
eval
{
# This is how you set the error handler for XML::Checker
local $XML::Checker::FAIL = &my_fail;
my $dom_document = $parser->parsefile ("file.xml");
... your code here ...
};
if ($@)
{
# Either XML::Parser::PerlSAX threw an exception (bad XML)
# or XML::Checker found an error and my_fail died.
... your error handling code here ...
}
# XML::Checker error handler
sub my_fail
{
my $code = shift;
die XML::Checker::error_string ($code, @_)
if $code < 200; # warnings and info messages are >= 200
}
CAVEATS
This is still alpha software. Package names and interfaces are subject to change.
AUTHOR
Send bug reports, hints, tips, suggestions to Enno Derksen at <enno@att.com>.
perl v5.8.0 2000-02-11 XML::Filter::SAXT(3)