IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Perl Discussion :

Librairie XML::Parser et modification "à la volée" de fichiers XML


Sujet :

Langage Perl

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 38
    Points : 45
    Points
    45
    Par défaut Librairie XML::Parser et modification "à la volée" de fichiers XML
    Bonjour à tous et merci de prendre le temps de lire ce message.
    Dans le cadre de mon stage j'essaie de réaliser un outil en script Perl qui nécessite la librairie XML:arser que je commence à maitriser petit à petit. Un seul bémol, cette librairie me permet effectivement de "parser" un document XML, de stocker les informations qu'il contient dans une structure de données mais je reste incapable d'exporter les éventuelles modifications apportées vers un autre fichier XML.
    Je m'excuse d'avance auprès des modos si un sujet dans ce style a déjà été publier mais cela fait quelques heures que je cherche sur divers forum et je n'est pas encore trouver la réponse à cette question.
    Donc pour résumer, est-il possible, grâce à une librairie un peu plus complète que XML:arser de parser un document XML, de modifier certaines valeurs de champs et surtout de les enregistrer dans un autre fichier XML?
    Si ce n'est pas possible tant pis mais je ne voulais pas perdre de temps à écrire ma propre librairie si il en existe déjà une.
    Merci d'avance pour vos réponses.
    FX

  2. #2
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    XML::Parser permet tout à fait de faire ça actuellement à ma connaissance même si les mécanismes pour se faire ne sont pas des plus pratiques.

    Je me permets toutefois de te conseiller plutôt XML::Twig, qui est plus légère à utiliser, plus performante souvent et très sympa, tu as aussi un excellent tutorial qui t'expliqueras la plupart des opérations (y compris la modification d'un document XML).

    --
    Jedaï

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 38
    Points : 45
    Points
    45
    Par défaut
    Merci pour ta réponse mais j'ai beau relire en long en large et en travers l'API de XML:arser et pas moyen de trouver où se trouve la méthode qui permet de "réécrire" le fichier XML qui est parsé.

    Je commence à regarder la lib XML::Twig mais comme je n'ai pas les droits sur la machine que j'utilise, il me faudra patienter jusqu'à l'installation de la lib.

    Si quelqu'un connait des tutos bien fichus sur XML:arser pour résoudre mon problème je suis encore prenneur.

    Merci encore.
    FX

  4. #4
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    XML::Parser est vieux et n'évolue plus, il est préférable d'utiliser XML::LibXML pour faire du parsing de bas niveau, ou d'utiliser une API de plus haut niveau comme XML::Twig, XML::Rules...

    Néanmoins si tu n'as pas le choix, le plus simple est encore d'utiliser le style "Stream" de XML::Parser, il te suffit d'utiliser print() (vers le bon fichier) à la fin de chacun des handlers, en ayant modifié $_ comme tu le souhaite auparavant.

    --
    Jedaï

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 38
    Points : 45
    Points
    45
    Par défaut
    Bien j'ai finalement réussit à mettre en place la librairie XML::Twig. Je commence à l'utiliser et effectivement c'est quand même mieux foutu ^^.

    Bon cette fois je m'y met et j'arrête de glander sur le forum.

    Merci Jedaï++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Modification de la structure d'un fichier XML
    Par Alphacom dans le forum VB.NET
    Réponses: 5
    Dernier message: 08/08/2014, 11h23
  2. Fichier xml à parser
    Par kali38 dans le forum Général Python
    Réponses: 3
    Dernier message: 04/05/2011, 14h08
  3. [???] Comparaison à la volée de 2 fichiers XML
    Par ghohm dans le forum XML/XSL et SOAP
    Réponses: 5
    Dernier message: 18/04/2007, 15h12
  4. [XML] Modification d'une donnée d'un fichier XML
    Par mardachris dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 15/12/2006, 19h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo