/home/.cpanm/work/1759492321.34808/XML-LibXML-2.0210/example
use strict; use warnings; use XML::LibXML; use IO::File; # first instanciate the parser my $parser = XML::LibXML->new(); # initialize the callbacks $parser->match_callback( \&match_uri ); $parser->read_callback( \&read_uri ); $parser->open_callback( \&open_uri ); $parser->close_callback( \&close_uri ); # include XIncludes on the fly $parser->expand_xinclude( 1 ); # parse the file "text.xml" in the current directory my $dom = $parser->parse_file("test.xml"); print $dom->toString() , "\n"; # the callbacks follow # these callbacks are used for both the original parse AND the XInclude sub match_uri { my $uri = shift; return $uri !~ /:\/\// ? 1 : 0; # we handle only files } sub open_uri { my $uri = shift; my $handler = new IO::File; if ( not $handler->open( "<$uri" ) ){ $handler = 0; } return $handler; } sub read_uri { my $handler = shift; my $length = shift; my $buffer = undef; if ( $handler ) { $handler->read( $buffer, $length ); } return $buffer; } sub close_uri { my $handler = shift; if ( $handler ) { $handler->close(); } return 1; }
.
Edit
..
Edit
JBR-ALLENtrees.htm
Edit
article.xml
Edit
article_bad.xml
Edit
article_external_bad.xml
Edit
article_internal.xml
Edit
article_internal_bad.xml
Edit
bad.dtd
Edit
bad.xml
Edit
catalog.xml
Edit
cb_example.pl
Edit
complex
Edit
create-sample-html-document.pl
Edit
dromeds.xml
Edit
dtd.xml
Edit
enc2_latin2.html
Edit
enc_latin2.html
Edit
ext_ent.dtd
Edit
ns.xml
Edit
test.dtd
Edit
test.html
Edit
test.xhtml
Edit
test.xml
Edit
test2.xml
Edit
test3.xml
Edit
test4.xml
Edit
thedieline.rss
Edit
utf-16-1.html
Edit
utf-16-2.html
Edit
utf-16-2.xml
Edit
xmllibxmldocs.pl
Edit
xmlns
Edit
xpath.pl
Edit
yahoo-finance-html-with-errors.html
Edit