Bonjour,
Je travail sur un fichier XML qu'il faudrait spliter en deux. Voici à quoi il ressemble
	
	| 12
 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 :
	
	| 12
 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 :
	
	| 12
 
 | my $data = $parser->XMLout ($ligne);
print $data; | 
 mais j'ai des soucis avec mes sous balises. Mon fichier généré ressemble à ça :
	
	| 12
 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