G'day atreyu,
If you pass the structure you want to XML::Simple::XMLin():
my $ref = $xmlParser->XMLin(<<'EOX', ForceArray => 1, KeyAttr => { nod +e => 'id' }); <?xml version="1.0" encoding="utf-8"?> <test> <node id="net_1.2.3.0"> <desc>network</desc> </node> <node id="ip_1.2.3.4"> <desc>ipaddr</desc> </node> </test> EOX
You can then look at $ref to see how %ref should have been constructed. Here's print Dumper $ref; output:
$VAR1 = { 'node' => { 'ip_1.2.3.4' => { 'desc' => [ 'ipaddr' ] }, 'net_1.2.3.0' => { 'desc' => [ 'network' ] } } };
So, your
push(@{$ref{'node'}},{ 'id' => 'net_1.2.3.0', 'desc' => 'network', });
needs to be
push @{$ref{node}}, { 'net_1.2.3.0' => { desc => ['network'] } };
and similarly for 'ip_1.2.3.4'. With those changes, my /tmp/testfile.xml looks like this:
<?xml version="1.0" encoding="utf-8"?> <test> <node id="net_1.2.3.0"> <desc>network</desc> </node> <node id="ip_1.2.3.4"> <desc>ipaddr</desc> </node> </test>
-- Ken
In reply to Re: XMLout and Elements vs Attributes
by kcott
in thread XMLout and Elements vs Attributes
by atreyu
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |