####
my $parser = new XML::Parser(Style => 'Objects');
my $xml = $parser->parsefile('test.xml');
####
&printXML($xml);
sub printXML {
my $ref = shift;
if (ref($ref) eq 'HASH') {
print "Type: HASH\n";
while (($key, $val) = each(%{$ref})) {
print "key: $key, val: $val\n";
&printXML($val);
}
} elsif (ref($ref) eq 'ARRAY') { # kids
print "Type: ARRAY\n";
for (@{$ref}) {
print "bla: $_\n";
&printXML($_);
}
} elsif ($xml->isa('HASH')) { # elements
print "Type: hash object\n";
while (($key, $val) = each(%{$ref})) {
print "key: $key, val: $val\n";
&printXML($val);
}
} else { # text
print $ref, "\n";
}
}