Would you like the data structure like this?
{ 'Entity B' => { 'Boss' => 'Name', 'unitnumber' => '2', 'contactinfo' => { 'URL' => undef, 'email' => undef, 'Telefon' => { 'telnumber' => '456', 'directcall' => '78910', 'code' => '0999' }, 'Address' => { 'zip' => '11111', 'Street' => 'SomeOtherSt +reet', 'Ort' => 'City', 'Building' => '2' }, 'Fax' => { 'telnumber' => '456', 'directcall' => '10987', 'code' => '0999' } }, 'products' => { 'E5722' => 'few', 'C8099' => '522', 'F3596' => 'few', 'B0765' => '988', 'A1136' => '1982', 'D3938' => 'few' } }, 'Entity A' => { 'Boss' => 'Name', 'unitnumber' => '1', 'contactinfo' => { ...
use strict; use XML::Rules; use Data::Dumper; my $parser = XML::Rules->new( rules => { 'excerpt' => 'pass no content', 'Address,Fax,Telefon,contactinfo,products' => 'no content', 'Boss,Building,Name,Ort,Street,URL,art_code,code,directcall,emai +l,quantity,quantity_small,telnumber,unitnumber,zip' => 'content', 'article' => sub { if (exists $_[1]->{quantity_small}) { return #'%article' =>{ $_[1]->{art_code} => 'few' # }; } else { return #'%article' => { $_[1]->{art_code} => $_[1]->{quantity} #}; } }, 'unit' => 'no content by Name', } ); my $data = $parser->parse(\*DATA); print Dumper($data); __DATA__ <excerpt> <unit> <unitnumber>1</unitnumber> ...
The base set of rules was generated by: perl -MData::Dumper -MXML::Rules -e "print Dumper(XML::Rules::inferRulesFromExample( 'c:\temp\excerpt.xml'))"
Jenda
Enoch was right!
Enjoy the last years of Rome.
In reply to Re: How to get paired values from the nested XML structure?
by Jenda
in thread How to get paired values from the nested XML structure?
by vagabonding electron
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |