http://qs321.pair.com?node_id=666522


in reply to Parsing XML file for more than 1 child element with attributes

You could do it this way (XML::Simple creates a hash of hashes because the nodes have an attribute called "name", I guess):
foreach $node ( keys( %{ $tree->{report}->{node} } ) ) { print "$node:values: $tree->{report}->{node}->{$node}->{values}\n"; }
But you'd be better off adding KeyAttr to your new() call:
my $simple = XML::Simple -> new (KeyAttr => 'node');
Because that way you will get an array of nodes
$tree = { 'report' => { 'ip' => '1.1.1.1', 'id' => '0', 'node' => [ { 'mid' => 'machine1', 'time' => '110, 120, 130, 140, 150, 160', 'name' => 'Winxp', 'values' => '1, 2, 3, 4, 5, 6' }, { 'mid' => 'machine2', 'time' => '110, 120, 130, 140, 150, 160', 'name' => 'Win2003', 'values' => '1, 2, 3, 4, 5, 6' } ] } };
Hint -- use Data::Dumper to look at the tree.


Nobody says perl looks like line-noise any more
kids today don't know what line-noise IS ...