in reply to XMLout and Elements vs Attributes
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
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: XMLout and Elements vs Attributes
by atreyu (Sexton) on Feb 20, 2014 at 18:37 UTC |