You are viewing a plain text version of this content. The canonical link for it is here.
Posted to general-cvs@xml.apache.org by ja...@apache.org on 2001/07/09 07:15:06 UTC
cvs commit: xml-site/sources/xerces-p SAX2Count.xml SAXCount.xml
jasons 01/07/08 22:15:06
Added: sources/xerces-p SAX2Count.xml SAXCount.xml
Log:
* SAXCount.xml (Repository):
* SAX2Count.xml (Repository):
new sample
Revision Changes Path
1.1 xml-site/sources/xerces-p/SAX2Count.xml
Index: SAX2Count.xml
===================================================================
<?xml version="1.0" standalone="no"?>
<!DOCTYPE s1 SYSTEM "sbk:/style/dtd/document.dtd">
<s1 title="DOMCount.pl">
<source><![CDATA[
use strict;
use XML::Xerces;
use Getopt::Std;
use vars qw($opt_v $opt_n);
use Benchmark;
#
# Read and validate command line args
#
my $USAGE = "USAGE: $0 [-v][-n] file\n";
getopts ('vn') && ($#ARGV == 0) or die "$USAGE";
-f $ARGV[0] or die "File '$ARGV[0]' does not exist!\n";
my $validate = $opt_v || 0;
my $namespace = $opt_n || 0;
my $file = $ARGV[0];
#
# Count the nodes
#
package MyContentHandler;
use strict;
use vars qw(@ISA);
@ISA = qw(XML::Xerces::PerlContentHandler);
sub start_element {
my $self = shift;
$self->{elements}++;
$self->{attrs} = 0;
}
sub characters {
my ($self,$str,$len) = @_;
$self->{chars} += $len;
}
sub ignorable_whitespace {
my ($self,$str,$len) = @_;
$self->{ws} += $len;
}
package main;
my $parser = XML::Xerces::XMLReaderFactory::createXMLReader();
$parser->setFeature("http://xml.org/sax/features/namespaces", $namespace);
$parser->setFeature("http://xml.org/sax/features/validation", $validate);
my $error_handler = XML::Xerces::PerlErrorHandler->new();
$parser->setErrorHandler($error_handler);
my $CONTENT_HANDLER = MyContentHandler->new();
$parser->setContentHandler($CONTENT_HANDLER);
my $t0 = new Benchmark;
$parser->parse (XML::Xerces::LocalFileInputSource->new($file));
my $t1 = new Benchmark;
my $td = timediff($t1, $t0);
print "$file: duration: ", timestr($td), "\n";
print "elems: ", $CONTENT_HANDLER->{elements}, "\n";
print "attrs: ", $CONTENT_HANDLER->{attrs}, "\n";
print "whitespace: ", $CONTENT_HANDLER->{ws}, "\n";
print "characters: ", $CONTENT_HANDLER->{chars}, "\n";
exit(0);
]]></source>
</s1>
1.1 xml-site/sources/xerces-p/SAXCount.xml
Index: SAXCount.xml
===================================================================
<?xml version="1.0" standalone="no"?>
<!DOCTYPE s1 SYSTEM "sbk:/style/dtd/document.dtd">
<s1 title="DOMCount.pl">
<source><![CDATA[
use strict;
use XML::Xerces;
use Getopt::Std;
use vars qw($opt_v $opt_n);
use Benchmark;
#
# Read and validate command line args
#
my $USAGE = "USAGE: $0 [-v][-n] file\n";
getopts ('vn') && ($#ARGV == 0) or die "$USAGE";
-f $ARGV[0] or die "File '$ARGV[0]' does not exist!\n";
my $validate = $opt_v || 0;
my $namespace = $opt_n || 0;
my $file = $ARGV[0];
#
# Count the nodes
#
my $parser = XML::Xerces::SAXParser->new();
$parser->setDoValidation ($validate);
$parser->setDoNamespaces ($namespace);
my $ERROR_HANDLER = XML::Xerces::PerlErrorHandler->new();
$parser->setErrorHandler($ERROR_HANDLER);
package MyDocumentHandler;
use strict;
use vars qw(@ISA);
@ISA = qw(XML::Xerces::PerlDocumentHandler);
sub start_element {
my $self = shift;
$self->{elements}++;
$self->{attrs} = 0;
}
sub characters {
my ($self,$str,$len) = @_;
$self->{chars} += $len;
}
sub ignorable_whitespace {
my ($self,$str,$len) = @_;
$self->{ws} += $len;
}
package main;
my $DOCUMENT_HANDLER = MyDocumentHandler->new();
$parser->setDocumentHandler($DOCUMENT_HANDLER);
my $t0 = new Benchmark;
$parser->parse (XML::Xerces::LocalFileInputSource->new($file));
my $t1 = new Benchmark;
my $td = timediff($t1, $t0);
print "$file: duration: ", timestr($td), "\n";
print "elems: ", $DOCUMENT_HANDLER->{elements}, "\n";
print "attrs: ", $DOCUMENT_HANDLER->{attrs}, "\n";
print "whitespace: ", $DOCUMENT_HANDLER->{ws}, "\n";
print "characters: ", $DOCUMENT_HANDLER->{chars}, "\n";
]]></source>
</s1>
---------------------------------------------------------------------
To unsubscribe, e-mail: general-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: general-cvs-help@xml.apache.org