Subject: | Attribute name changes parsed data structure |
Date: | Sat, 30 Dec 2006 16:51:12 +0100 |
To: | bug-XML-Simple [...] rt.cpan.org |
From: | Marco Del Percio <marco.delpercio [...] gmail.com> |
Hi
I ran into this and I think it is a bug. Try to parse with Xml::Simple
this simple file (test1.xml):
<?xml version="1.0" ?>
<root>
<page nome="one" attribute="C">
<bla att="1"/>
</page>
<page nome="two" feature="H">
<bla att="3"/>
</page>
</root>
I used this very simple test application:
use XML::Simple;
use Data::Dumper;
my $xml = new XML::Simple();
my $ref = $xml->XMLin("test1.xml");
print Dumper($ref);
If you run this you'll get (as everyone expect) that $ref->{page} is an
array.
Now try this little change to the xml file and use the same testing
application:
<?xml version="1.0" ?>
<root>
<page name="one" attribute="C">
<bla att="1"/>
</page>
<page name="two" feature="H">
<bla att="3"/>
</page>
</root>
Now the attribute is called "name" and not as in Italian (my language)
"nome". If you parse the file and you observe the Dump now you'll see
that $ref->{page} is no longer an array... it is an hash like this
$ref->{page}->{one}
$ref->{page}->{two}
Nowhere in the dump of the structure appear the "name" attribute string.
Is this a problem of xml? I don't think the attribute "name" is a
special reserved attribute name in xml.
Greetings
Marco Del Percio from Italy