benedicth has asked for the wisdom of the Perl Monks concerning the following question:
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!
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: How to address hashtables nested in arrays?
by AnomalousMonk (Archbishop) on Apr 11, 2015 at 22:41 UTC | |
|
Re: How to address hashtables nested in arrays?
by pme (Monsignor) on Apr 11, 2015 at 20:59 UTC | |
by benedicth (Initiate) on Apr 11, 2015 at 21:07 UTC | |
by pme (Monsignor) on Apr 11, 2015 at 21:43 UTC |