in reply to XML parsing Help..
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 |