Let's consider this XML.
<acme>
<name role="main">Bugs Bunny</character>
</acme>
Data::Dumper can be used to understand how XML::Simple is interpreting the XML. Here is an example of how to use Data::Dumper.
#!/usr/bin/perl
use strict;
use warnings;
use XML::Simple;
use Data::Dumper;
my $xml= XMLin("example.xml");
print Dumper $xml;
Which will produce the following.
$VAR1 = {
'name' => {
'content' => 'Bugs Bunny',
'role' => 'main'
}
};
To loop through each root key:
foreach my $root_key (keys %{$xml}) {
print "$root_key\n";
}
Which, in this example, will print "name".
name
To loop through each child key.
foreach my $root_key (keys %{$xml}) {
print "root key = $root_key\n";
foreach my $child_key (keys %{$xml->{$root_key}}) {
print "child key = $child_key\n";
}
}
Which, in this example, will print the following.
root key = name
child key = content
child key = role
Or, if you already know the child key, you could do this.
foreach my $child_key (keys %{$xml->{'name'}}) {
print "child key = $child_key\n";
}