[PERL] Ajouter des balises dans un fichier XML

Ajouter des balises dans un fichier XML [PERL] - Perl - Programmation

Marsh Posté le 21-01-2007 à 12:01:00    

Bonjour tt le monde,
 
Je viens de me mettre au XML avec Perl. J'aimerais ajouter des balises ds un fichier XML (j'utilise LibXML mais ca marche pas ) Quelle librairie me conseillez-vous ?
Voici mon bout de code :

Citation :


...
$xml = XML::LibXML->new();
$data = $xml->parse_file($adr_indexfile);
$moteur = $data->getDocumentElement(); //element <moteur>
$mots = $moteur->getFirstChild(); //element <mots> qui contient des elements <motcle>
my $motcle = $data->createElement('motcle');
$motcle->setAttribute('nom', $mot);
$mots->appendChild($motcle);
my $url = $data->createElement('urls');
$motcle->appendChild($url);
my $lien = $data->createElement('lien');
$lien->setAttribute('valeururl', $ARGV[2]);
$url->appendChild($lien);
my $pond = $data->createElement('ponderation');
my $text = XML::LibXML::Text->new($ponderation);
$pond->appendChild($text);
 
print Dumper($data);


 
Je veux ajouter :
<motcle nom="toto">
<urls>
<lien valeururl = "...">
<ponderation>1</ponderation>
</lien>
</urls>
</motcle>
 
Mais le print me rend :

Citation :


$VAR1 = bless( do{\(my $o = 148458496)}, 'XML::LibXML::document' );


 
Et mon fichier n'est pas modifié.
Ya-t-il une meilleure librairie ? Comment ajouter une nouvelle balise <motcle...> à la suite des autres motclés ?
 
Please aidez-moi !
Merci d'avance.

Reply

Marsh Posté le 21-01-2007 à 12:01:00   

Reply

Marsh Posté le 05-04-2007 à 18:04:58    

si tu connais le motif de tes balises alors tu pourrais bien l'ouvrir et faire une expression reguliere qui effectue les ajouts la ou le motif est trouvé
 
par exemple  

Code :
  1. # Controle de la syntaxe d'appel
  2. die ("USAGE : >perl modif.pl file \n" ) if (!defined($ARGV[0]));
  3. my $inputFile= $ARGV[0];
  4. # Ouverture fichier xml
  5. if (-e $inputFile) {
  6. open FILEIN,"<:utf8","$inputFile" or die "Un problème est survenu pendant l'ouverture du fichier $inputFile!\n";
  7. }
  8. else {die "Le fichier $inputFile n'existe pas...\n"}
  9. # Lecture du fichier xml
  10. undef $/;
  11. $contenuXML=<FILEIN>;
  12. close FILEIN;
  13. #$/="\n";
  14. #exemple de regexp
  15. $contenuXML=~s/(motif)(motif)/$1add()$2/ge;
  16. #ecriture fichier
  17. open(FILEOUT,">:utf8","$inputFile" ) || die "Fichier $inputFile impossible a ouvrir en ecriture";
  18. # Ecriture du fichier de sortie
  19. print FILEOUT $contenuXML;
  20. close FILEOUT;
  21. sub add()
  22. {
  23. ajouter ici les balises
  24. return code;
  25. }


Message édité par akio le 05-04-2007 à 18:05:46
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed