in reply to
XML Parser issue
I need array of hash references. Means the above xml will produce two records in hash format. The two hash references will be pushed to array. I have written the below parser. But the result render only one record. The second record is empty. Please suggest.
Well, this is a job for
XML::Simple. I think the script below does more or less what you want:
#!/usr/bin/perl
use warnings;
use strict;
use XML::Simple;
use Data::Dumper;
my $xml = XMLin(
\*DATA,
ForceArray => [ 'page' ],
);
print Dumper $xml->{page};
__DATA__
<story>
<page>
<author>Author 1 </author>
<keywords>Keyword1 </keywords>
<headline>Headline1 </headline>
<image> Image1 </image>
<description>Desc 1 </description>
</page>
<page>
<author>Author 2</author>
<keywords>Keyword2 </keywords>
<headline>Headline 2 </headline>
<image> Image2 </image>
<description>Decs 2 </description>
</page>
</story>
__OUTPUT__
$VAR1 = [
{
'keywords' => 'Keyword1 ',
'author' => 'Author 1 ',
'description' => 'Desc 1 ',
'image' => ' Image1 ',
'headline' => 'Headline1 '
},
{
'keywords' => 'Keyword2 ',
'author' => 'Author 2',
'description' => 'Decs 2 ',
'image' => ' Image2 ',
'headline' => 'Headline 2 '
}
];
Best regards,