bioswami has asked for the wisdom of the Perl Monks concerning the following question:
What I want to do is get to each product and substrate name for a given reaction and print it out. Here is what I would like to do:'reaction' => [ { 'substrate' => { 'name' => 'cpd:C00084' }, 'name' => 'rn:R00710', 'product' => { 'name' => 'cpd:C00033' }, 'type' => 'reversible' }, { 'substrate' => [ { 'name' => 'cpd:C00068' }, { 'name' => 'cpd:C00022' } ], 'name' => 'rn:R00014', 'product' => { 'name' => 'cpd:C05125' }, 'type' => 'irreversible' },
It works for the first product and substrate, but for the second one, since there are now TWO substrates, it doesn't seem to pick it up. The fact that this doesn't work tells me that I am wrong somewhere, but I can't for the life of me figure it out. The error I get is: Bad index while coercing array into hash Any help will be much appreciated!! Thanks in advance. Cheers, Bioswami$data = $xml->XMLin($input_file); foreach $g (@{$data->{reaction}}) { foreach $h ($g->{substrate}){ $temp1 = $h->{name}; foreach $i ($g->{product}->{name}){ $temp2 = $i->{name} print "$temp1 -- $temp2\n"; } ] }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: XML parsing Help..
by davorg (Chancellor) on Nov 10, 2006 at 08:56 UTC | |
by bioswami (Novice) on Nov 10, 2006 at 09:41 UTC | |
|
Re: XML parsing Help..
by Hofmator (Curate) on Nov 10, 2006 at 09:48 UTC | |
by Jenda (Abbot) on Nov 11, 2006 at 14:58 UTC |