in reply to XML parsing Help..
The problem seems to be solved already ... but I liked playing around with it a bit. To ease this for fellow monks who might feel likewise - here is my code, showing similar behaviour to what bioswami wanted to achieve originally.
use strict; use warnings; use XML::Simple; use Data::Dumper; local $/; # slurp my $data = XMLin(<DATA>, KeyAttr => [], ForceArray => [qw/substrate pr +oduct/]); for my $reaction (@{$data->{reaction}}) { print $reaction->{name}, ' (', $reaction->{type}, "):\n"; for my $substrate (@{$reaction->{substrate}}) { foreach my $product (@{$reaction->{product}}) { print "\t", $substrate->{name}, " -- ", $product->{name}, +"\n"; } } } __DATA__ <root> <reaction name="rn:R00710" type="reversible"> <substrate name="cpd:C00084"/> <product name="cpd:C00033"/> </reaction> <reaction name="rn:R00014" type="irreversible"> <substrate name="cpd:C00068"/> <substrate name="cpd:C00022"/> <product name="cpd:C05125"/> </reaction> </root>
-- Hofmator
Code written by Hofmator and posted on PerlMonks is public domain. It is provided as is with no warranties, express or implied, of any kind. Posted code may not have been tested. Use of posted code is at your own risk.
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^2: XML parsing Help..
by Jenda (Abbot) on Nov 11, 2006 at 14:58 UTC |
In Section
Seekers of Perl Wisdom