Bonjour,
Je travail sur un fichier XML qu'il faudrait spliter en deux. Voici à quoi il ressemble
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
<Document>
<balise2>
<header></header>
<Lot>
<ID>XXXXXXX</ID>
</Lot>
<Lot>
<ID>YYYYYYYY</ID>
<balise>
<sous-balise1>A</sous-balise1>
<sous-balise2>B</sous-balise2>
</balise>
</Lot>
<Lot>
<ID>ZZZZZZZ</ID>
</Lot>
</balise2>
</Document> |
J'ai besoin d'extraire la partie YYYYYYY de l'XML et pour ca j'utilise le module XML :: parser
my $var = $parser->XMLin($ARGV[0]);
Ensuite j'isole la ligne YYYYYYY avec un if :
1 2 3 4 5
| foreach my $ligne ( @{ $var->{Document}->{Balise2}->{Lot} } ) {
if ($ligne->{ID} eq 'YYYYYYY') {
On traite les données
}
} |
Pour traiter les données et les remettre au format XML dans un fichier à part, j'ai pensé à ca dans mon if :
1 2
| my $data = $parser->XMLout ($ligne);
print $data; |
mais j'ai des soucis avec mes sous balises. Mon fichier généré ressemble à ça :
1 2 3 4 5
|
<ID>YYYYYYYY</ID>
<balise sous-balise1="A">
<sous-balise2>B</sous-balise2>
</balise> |
Je ne comprend pas pourquoi certaines sous-balises se comporte correctement et d'autre se comporte comme la sous-balise1.
Merci
Partager