[tpm] XML::Simple ignores SupressEmpty
Fulko Hew
fulko.hew at gmail.com
Wed May 2 08:01:09 PDT 2012
(Note that I've also posted this to PerlMonks.)
I've been using XML::Simple for some very simple XML and until yesterday
it was working the way I expected... till I got bitten with the following
example:
use XML::Simple;
use Data::Dumper;
my $x =<<EOF;
<stuff name="me">
<obj class="myclass">
<set name="key1">a</set>
<set name="key2"></set>
</obj>
<obj class="myclass">
<set name="key1">a</set>
<set name="key2">b</set>
</obj>
</stuff>
EOF
$x = XMLin(
$x,
#SuppressEmpty => '',
ForceArray => 1,
ContentKey => '-content',
);
print Dumper(\$x);
$VAR1 = \{
'obj' => [
{
'class' => 'myclass',
'set' => {
'key2' => {},
'key1' => {
'content' => 'a'
}
}
},
{
'class' => 'myclass',
'set' => {
'key2' => 'b',
'key1' => 'a'
}
}
],
'name' => 'me'
};
Here I've provided two 'objects', one object has an element that
has an empty or value is blank. As a result the hash that's returned
is formatted differently than when _all_ attributes are provided.
What I expected was the latter like:
'key2' => 'b',
'key1' => 'a'
but where there is an 'empty' attribute everything changes to a hash
(and with the 'content' sub-element). That's what I thought the
ForceArray and ContentKey was supposed to suppress; and the
ContentKey does do it!... but only when all fields are populated.
I thought SuppressEmpty would do it, but it doesn't.
What am I missing?
TIA
Fulko
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/toronto-pm/attachments/20120502/c4a1fa35/attachment.html>
More information about the toronto-pm
mailing list