# $Id: Objects.pm,v 1.1 2003/08/18 20:20:51 matt Exp $
package XML
::Parser
::Style
::Objects
;
$expat->{Curlist
} = $expat->{Tree
} = [];
my $class = "${$expat}{Pkg}::$tag";
my $newobj = bless { @_, Kids
=> $newlist }, $class;
push @
{ $expat->{Lists
} }, $expat->{Curlist
};
push @
{ $expat->{Curlist
} }, $newobj;
$expat->{Curlist
} = $newlist;
$expat->{Curlist
} = pop @
{ $expat->{Lists
} };
my $class = "${$expat}{Pkg}::Characters";
my $clist = $expat->{Curlist
};
if ($pos >= 0 and ref($clist->[$pos]) eq $class) {
$clist->[$pos]->{Text
} .= $text;
push @
$clist, bless { Text
=> $text }, $class;
delete $expat->{Curlist
};
XML::Parser::Style::Objects
my $p = XML::Parser->new(Style => 'Objects', Pkg => 'MyNode');
my $tree = $p->parsefile('foo.xml');
This module implements XML::Parser's Objects style parser.
This is similar to the Tree style, except that a hash object is created for
each element. The corresponding object will be in the class whose name
is created by appending "::" and the element name to the package set with
the Pkg option. Non-markup text will be in the ::Characters class. The
contents of the corresponding object will be in an anonymous array that
is the value of the Kids property for that object.
L<XML::Parser::Style::Tree>