57 lines
968 B
Perl
57 lines
968 B
Perl
BEGIN { print "1..4\n"; }
|
|
END { print "not ok 1\n" unless $loaded; }
|
|
use XML::Parser;
|
|
$loaded = 1;
|
|
print "ok 1\n";
|
|
|
|
my $cmnt_count = 0;
|
|
my $pi_count = 0;
|
|
my $between_count = 0;
|
|
my $authseen = 0;
|
|
|
|
sub init {
|
|
my $xp = shift;
|
|
$xp->skip_until(1); # Skip through prolog
|
|
}
|
|
|
|
sub proc {
|
|
$pi_count++;
|
|
}
|
|
|
|
sub cmnt {
|
|
$cmnt_count++;
|
|
}
|
|
|
|
sub start {
|
|
my ( $xp, $el ) = @_;
|
|
my $ndx = $xp->element_index;
|
|
if ( !$authseen and $el eq 'authlist' ) {
|
|
$authseen = 1;
|
|
$xp->skip_until(2000);
|
|
}
|
|
elsif ( $authseen and $ndx < 2000 ) {
|
|
$between_count++;
|
|
}
|
|
}
|
|
|
|
my $p = new XML::Parser(
|
|
Handlers => {
|
|
Init => \&init,
|
|
Start => \&start,
|
|
Comment => \&cmnt,
|
|
Proc => \&proc
|
|
}
|
|
);
|
|
|
|
$p->parsefile('samples/REC-xml-19980210.xml');
|
|
|
|
print "not " if $between_count;
|
|
print "ok 2\n";
|
|
|
|
print "not " if $pi_count;
|
|
print "ok 3\n";
|
|
|
|
print "not " unless $cmnt_count == 5;
|
|
print "ok 4\n";
|
|
|