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 @articles = $treeobjekt->findnodes('//article');
for(my $j=0;$j<@articles;$j++) {
my $unitname = $articles[$j]->parentNode->parentNode->findvalue('./Name/text()');
my $article = $articles[$j]->findvalue('./art_code/text()');
my $amount = $articles[$j]->findvalue('./quantity/text()')//"0";
print "$unitname;$article;$amount\n";
}
####
Entity A;A3236;554
Entity A;B9735;386
Entity A;C1299;322
Entity A;D1918;
Entity A;E0702;
Entity A;F1290;
Entity B;A1136;1982
Entity B;B0765;988
Entity B;C8099;522
Entity B;D3938;
Entity B;E5722;
Entity B;F3596;
##
##
findvalue('./quantity/text()')//"0";