59 lines
1.1 KiB
Perl
59 lines
1.1 KiB
Perl
# $Id: Subs.pm,v 1.1 2003-07-27 16:07:49 matt Exp $
|
|
|
|
package XML::Parser::Style::Subs;
|
|
|
|
sub Start {
|
|
no strict 'refs';
|
|
my $expat = shift;
|
|
my $tag = shift;
|
|
my $sub = $expat->{Pkg} . "::$tag";
|
|
eval { &$sub( $expat, $tag, @_ ) };
|
|
}
|
|
|
|
sub End {
|
|
no strict 'refs';
|
|
my $expat = shift;
|
|
my $tag = shift;
|
|
my $sub = $expat->{Pkg} . "::${tag}_";
|
|
eval { &$sub( $expat, $tag ) };
|
|
}
|
|
|
|
1;
|
|
__END__
|
|
|
|
=head1 NAME
|
|
|
|
XML::Parser::Style::Subs - glue for handling element callbacks
|
|
|
|
=head1 SYNOPSIS
|
|
|
|
use XML::Parser;
|
|
my $p = XML::Parser->new(Style => 'Subs', Pkg => 'MySubs');
|
|
$p->parsefile('foo.xml');
|
|
|
|
{
|
|
package MySubs;
|
|
|
|
sub foo {
|
|
# start of foo tag
|
|
}
|
|
|
|
sub foo_ {
|
|
# end of foo tag
|
|
}
|
|
}
|
|
|
|
=head1 DESCRIPTION
|
|
|
|
Each time an element starts, a sub by that name in the package specified
|
|
by the Pkg option is called with the same parameters that the Start
|
|
handler gets called with.
|
|
|
|
Each time an element ends, a sub with that name appended with an underscore
|
|
("_"), is called with the same parameters that the End handler gets called
|
|
with.
|
|
|
|
Nothing special is returned by parse.
|
|
|
|
=cut
|