Hi all,

Would somebody please show some light on what's happening here.

I'm trying  to parse a sample xml file like below

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<config>
    <type name="default">
        <report>Dummy1</report>
    </type>
    <type name="scenario1">
        <report>Dummy2</report>
    </type>
</config>


When i run to parse with a sample script like below

use XML::Simple;
use Data::Dumper;
my $lXMLFile = "$ENV{'PWD'}/xmlsample.xml";
my $Config = XMLin($lXMLFile);
print Dumper($Config);

I'm getting proper result
$VAR1 = {
          'type' => {
                    'scenario1' => {
                                   'report' => 'Dummy2'
                                 },
                    'default' => {
                                 'report' => 'Dummy1'
                               }
                  }
        };

BUT if my xml contains only one <type> tag

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<config>
    <type name="default">
        <report>Dummy1</report>
    </type>
</config>

"default" is not becoming a key like above instead it comes along with
"report" key....See the wrong output below..

$VAR1 = {
          'type' => {
                    'report' => 'Dummy1',
                    'name' => 'default'
                  }
        };


I was just wondering why this is behaving differently when we have two tags
of <type> and when we have only one tag of <type>

Would somebody please help me on this. I would like to have  an output like
below even if we are having one row.   Am i missing something :(

$VAR1 = {
          'type' => {
                    'default' => {
                                 'report' => 'Dummy1'
                               }
                  }
        };


Cheers and Thanks alot

Jins Thomas

Reply via email to