##
{
'inventors' => {
'inventor' => [
{
'country' => 'GB',
'city' => 'Aston Clinton',
'upper-name' => 'ANDY BARTH',
'number' => {
'_content' => '1',
'type' => 'integer'
},
'name' => 'Andy Barth'
},
{
'country' => 'GB',
'city' => 'Aylesbury',
'upper-name' => 'DANIELE DALL\'ACQUA',
'number' => {
'_content' => '2',
'type' => 'integer'
},
'name' => 'Daniele Dall\'Acqua'
},
{
'country' => 'GB',
'city' => 'Calne',
'upper-name' => 'NIGEL DREW',
'number' => {
'_content' => '3',
'type' => 'integer'
},
'name' => 'Nigel Drew'
}
],
'type' => 'array'
}
};
##
##
{
'inventors' => {
'inventor' => [
{
'country' => 'GB',
'city' => 'Aston Clinton',
'upper-name' => 'ANDY BARTH',
'number' => '1',
'name' => 'Andy Barth'
},
{
'country' => 'GB',
'city' => 'Aylesbury',
'upper-name' => 'DANIELE DALL\'ACQUA',
'number' => '2',
'name' => 'Daniele Dall\'Acqua'
},
{
'country' => 'GB',
'city' => 'Calne',
'upper-name' => 'NIGEL DREW',
'number' => '3',
'name' => 'Nigel Drew'
}
],
'type' => 'array'
}
};
##
##
{
'inventors' => {
'1' => {
'country' => 'GB',
'city' => 'Aston Clinton',
'upper-name' => 'ANDY BARTH',
'name' => 'Andy Barth'
},
'3' => {
'country' => 'GB',
'city' => 'Calne',
'upper-name' => 'NIGEL DREW',
'name' => 'Nigel Drew'
},
'type' => 'array',
'2' => {
'country' => 'GB',
'city' => 'Aylesbury',
'upper-name' => 'DANIELE DALL\'ACQUA',
'name' => 'Daniele Dall\'Acqua'
}
}
};
##
##
use Data::Dumper;
use XML::Rules;
my $parser = XML::Rules->new(
stripspaces => 7,
rules => {
'inventors' => 'no content remove(type)',
'inventor' => 'by number',
'number,city,country,name,upper-name' => 'content'
}
);
my $data = $parser->parsefile('c:\temp\inventors.xml');
#print Dumper($data);
print "The 1st inventor was $data->{inventors}{1}{name}\n";