Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2142 connectés 

  FORUM HardWare.fr
  Programmation
  Perl

  [PERL] Ajouter des balises dans un fichier XML

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PERL] Ajouter des balises dans un fichier XML

n°1505517
elody35
Posté le 21-01-2007 à 12:01:00  profilanswer
 

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.

mood
Publicité
Posté le 21-01-2007 à 12:01:00  profilanswer
 

n°1539150
akio
Posté le 05-04-2007 à 18:04:58  profilanswer
 

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

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Perl

  [PERL] Ajouter des balises dans un fichier XML

 

Sujets relatifs
pb scipt shell comparer un argument a une valeur dan un fichierAjouter un champ ID auto increment sur une table existante
Passer un tableau ou une hash Perl à JavaScriptFichier AuthorizedKeysFile
[Java] Crypter un fichier avec le support du multi-threading?[Résolu] Comment envoyer un fichier sur un serveur (client ftp)
2 formulaire ds un même fichier phpManipuler des données XML
Suprimé un fichier totalement du dd, sans pouvoire le récupérerpblm upload fichier, interdire certains...
Plus de sujets relatifs à : [PERL] Ajouter des balises dans un fichier XML


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR