Salut a tous,
je fais un programme ou en ce moment je combine le Perl et Xml. Mais la j´ai un probleme, apres avoir à partir de mon code formé une structure xml, je l´ecrit dans des fichiers generés par mon code aussi.
En fait je lis 3 fichiers textes par le clavier (les 3 sont identiques par leur contenu, c´est a dire les memes données) et mon programme par une boucle traite chacun et passe au suivant(la boucle en question va de 1 à 3 coe ca fait 3 fichiers).

A chaque fichier lu est crée un fichier xml correspondant (fichier1.xml. fichier2.xml, fixchier3.xml)...

Mon hic c´est que le premier fichier est correctement formé et rempli, mais le deuxieme et troisieme sont eux aussi bien formés mais remplis mais en double....

Donc au lieu d´avoir par exemple (je peux pas mettre l´original trop long) ceci:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
<?xml version='1.0'?>
<livre>
       <titre>Dreamcatcher</titre>
       <auteur>
               <nom>King</nom>
               <prenom>Stephen</prenom>
       </auteur>
       <annee_edition>2000</annee_edition>
</livre>

j´ai plutot

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
<?xml version='1.0'?>
<livre>
       <titre>Dreamcatcher</titre>
       <auteur>
               <nom>King</nom>
               <prenom>Stephen</prenom>
       </auteur>
       <annee_edition>2000</annee_edition>
</livre>
 
<?xml version='1.0'?>
<livre>
       <titre>Dreamcatcher</titre>
       <auteur>
               <nom>King</nom>
               <prenom>Stephen</prenom>
       </auteur>
       <annee_edition>2000</annee_edition>
</livre>

le code qui ecrit dans le xml c´est ceci:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
open(FIC, ">fichier$i.xml") || die "error";
  print FIC $xml_var;
close (FIC);
pour ceux qui ont eu a toucher du XML dans Perl savent certainement le role de $xml_var, c´est lui qui contient l´ensemble du contenu XML crée :

my $xml_write=new XML::Writer(OUTPUT => \$xml_var, DATA_MODE =>1, DATA_INDENT =>2);

Merci de m´aider.