Hi I am trying to parse an XML into a nested Array/hash structure and am desperatly trying to get a list of keys from the Contact attributes which remains a hastable. Here is my code:
my $xml = <<'EOD' ;
<root>
<instance>
<contact>
<customerfid>101</customerfid>
<firstname>Steve</firstname>
<lastname>Jobs</lastname>
</contact>
<contact>
<customerfid>102</customerfid>
<firstname>mark</firstname>
<lastname>blue</lastname>
</contact>
</instance>
<instance>
<contact>
<customerfid>444</customerfid>
<firstname>john</firstname>
<lastname>Doe</lastname>
</contact>
</instance>
</root>
EOD
my $data = XMLin( $xml, forcearray => ['instance', 'contact']) ;
print Dumper( $data ) ;
foreach $n (@{$data->{'instance'}}){
foreach $m (@{$data->{$n}{'contact'}}){
foreach $key (keys %{$data->{$m}}){
print "key: $key \n";
}
}
}
If I run parser this is my structure:
$VAR1 = {
'instance' => [
{
'contact' => [
{
'firstname' => 'Steve',
'customerfid' => '101',
'lastname' => 'Jobs'
},
{
'firstname' => 'mark',
'customerfid' => '102',
'lastname' => 'blue'
}
]
},
{
'contact' => [
{
'firstname' => 'john',
'customerfid' => '444',
'lastname' => 'Doe'
}
]
}
]
};
Why can't I address the hashtable the way I did and how would I do it? Thanks in advance!