1
Entity A
Name
SomeStreet
1
00000
Town
0123
456
78910
0123
456
10987
A3236
554
B9735
386
C1299
322
D1918
E0702
F1290
2
Entity B
Name
SomeOtherStreet
2
11111
City
0999
456
78910
0999
456
10987
A1136
1982
B0765
988
C8099
522
D3938
E5722
F3596
####
Entity A;A3236;554
Entity A;B9735;386
Entity A;C1299;322
...
Entity B;A1136;1982
etc.
####
use strict;
use warnings;
use XML::LibXML;
my $filename = "Test.xml";
my $my_object = XML::LibXML->new();
my $treeobjekt = $my_object->parse_file($filename);
my $root = $treeobjekt->getDocumentElement;
my @units=$treeobjekt->findnodes("//excerpt/unit");
for(my $i=0;$i<@units;$i++) {
my $unitname=$units[$i]->findvalue('./Name/text()');
my $art = $units[$i]->findvalue('./products/article');
my $art_chain = join('---', split(/\n/, $art));
print "$unitname;$art_chain\n";
}
####
my $art_chain;
if($units[$i]->findvalue('./products/article/quantity')>0) {
$art_chain = join('---', split(/\n/, $art));
}