use warnings;
use strict;
use XML::Twig;
my $xmlstr = <<EOF;
<TREES>
<APPLE>
<TYPE id="1001">Scarlet</TYPE>
<TYPE id="1002">Red</TYPE>
<TYPE id="1003">Gold</TYPE>
<TYPE id="1004">Fuji</TYPE>
<TYPE id="1005">Scarlet</TYPE>
</APPLE>
<PEAR>
<TYPE id="1001">Bradford</TYPE>
<TYPE id="1002">Cleveland Select</TYPE>
<TYPE id="1003">Aristocrat</TYPE>
<TYPE id="1004">Autumn Blaze</TYPE>
</PEAR>
</TREES>
EOF
my $twig = XML::Twig->new(twig_handlers => {APPLE => \&apple});
$twig->parse($xmlstr);
sub apple {
my ($t, $elt) = @_;
for my $type ($elt->children('TYPE')) {
print $type->att('id'), "\n";
print $type->text(), "\n";
print "\n";
}
}
__END__
1001
Scarlet
1002
Red
1003
Gold
1004
Fuji
1005
Scarlet
Use warnings too.