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 :

Suppression de quelqueS baliseS xml dans un fichier XML


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 106
    Par défaut Suppression de quelqueS baliseS xml dans un fichier XML
    Bonjour a tous,

    j'aurai voulu savoir s'il est possible de supprimé quelque balise xml dans un fichier XMl ?
    je m'explique j'ai un fichier
    Code xml : 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
    21
    22
    23
    24
     
    <Personne>
    <Nom>AAAAA</Nom>
    <Prenom>BBBBBB</Prenom>
    <Pays>FRANCE</Pays>
    <Tel>0601020304</Tel>
    <Mail>AAAAA@BBBBBB.fr</Mail>
    </Personne>
     
    <Personne>
    <Nom>ABCD</Nom>
    <Prenom>EFGH</Prenom>
    <Pays>USA</Pays>
    <Tel>0601010101</Tel>
    <Mail>ABCD@EFGH.fr</Mail>
    </Personne>
     
    <Personne>
    <Nom>ABA</Nom>
    <Prenom>QDQSQ</Prenom>
    <Pays>FRANCE</Pays>
    <Tel>0101010101</Tel>
    <Mail>ABA@QDQSQ.fr</Mail>
    </Personne>


    et je veut crée un fichier qui ne contient que le nom est prénom des personne née en france, ce qui doit me donnée dans cette exemple le résultat suivant:
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <Personne>
    <Nom>AAAAA</Nom>
    <Prenom>BBBBBB</Prenom>
    </Personne>
     
    <Personne>
    <Nom>ABA</Nom>
    <Prenom>QDQSQ</Prenom>
    </Personne>

    Ps: je sais comment récupéré les valeur des balise et les réinséré dans de nouvelle balise pour formé mon nouveau fichier XML, mai je me dis qu'il y a peut etre un moyen d'enlevé des balise directement du fichier initial sans avoir besoin de récupéré les valeur et de les réinséré dans une nouveau fichier xml

    Merci pour le temps que vous voulez bien accordé a ma question

    Cordialement

  2. #2
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    Tu peux le faire avec XML::Twig.
    Ps: je sais comment récupéré les valeur des balise et les réinséré dans de nouvelle balise pour formé mon nouveau fichier XML, mai je me dis qu'il y a peut etre un moyen d'enlevé des balise directement du fichier initial sans avoir besoin de récupéré les valeur et de les réinséré dans une nouveau fichier xml
    Tu seras tout de même obligé de passer par un fichier intermédiaire.
    Mais c'est assez rapide à faire avec le module cité ci-dessus. Essaye et si besoin, je t'aiderai.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 106
    Par défaut
    Bonjour Djib

    merci de ta réponse
    offet moi j’utilise XML::Simple, et donc si j'ai bien compris il faut que je récupère les données dont j'ai besoin et par la suite je recrée un nouveau fichier Xml ?

    je profit pour te poser une 2eme question le quel est mieux entre (XML::Simple et XML::Twing ), avantage et inconvénient ?

    merci pr ton aide et ta proposition

  4. #4
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822

  5. #5
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Billets dans le blog
    1
    Par défaut
    Dans un cas aussi simple, si le fichier est assuré d'avoir ce format, tu peux sans doute te passer d'utiliser des modules complémentaires pour lire le XML.

    Quelque chose dans ce genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    ... ouverture des fichiers en entrée en en sortie
    ...
     
    while <FILE_IN> {
         print FILE_OUT unless /^<Pays>/ or /^<Tel>/ or /^<Mail>/;
    }
    Tu peux même le faire un script uniligne, ce qui te permet de ne pas avoir à créer un fichier intermédiaire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    perl -ni -e "print unless /^<Pays>/ or /^<Tel>/ or /^<Mail>/;"  fic_entree.xml
    C'est fic_entree.xml qui sera directement modifié.

  6. #6
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    Citation Envoyé par Lolo78 Voir le message
    Dans un cas aussi simple, si le fichier est assuré d'avoir ce format, tu peux sans doute te passer d'utiliser des modules complémentaires pour lire le XML.

    Quelque chose dans ce genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    ... ouverture des fichiers en entrée en en sortie
    ...
     
    while <FILE_IN> {
         print FILE_OUT unless /^<Pays>/ or /^<Tel>/ or /^<Mail>/;
    }
    Tu peux même le faire un script uniligne, ce qui te permet de ne pas avoir à créer un fichier intermédiaire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    perl -ni -e "print unless /^<Pays>/ or /^<Tel>/ or /^<Mail>/;"  fic_entree.xml
    C'est fic_entree.xml qui sera directement modifié.
    NON NON ET NON.

    Merci de ne jamais conseiller à utiliser des expressions régulières pour analyser des fichiers XML quels qu'ils soient . C'est une très très mauvaise idée.
    Les modules XML sont là pour cela et font très bien le boulot.

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

Discussions similaires

  1. Insérer des balises html dans un fichier xml
    Par Abac_Angelique dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 29/04/2009, 18h41
  2. Réponses: 8
    Dernier message: 01/05/2007, 18h13
  3. [XSLT] Utiliser des balises XHTML dans un fichier XML
    Par zoubidaman dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 20/03/2007, 15h30
  4. balise <br> dans un fichier XML
    Par cyraile dans le forum Dynamique
    Réponses: 4
    Dernier message: 15/01/2007, 15h39
  5. Balises HTML dans un fichier XML
    Par Bastet79 dans le forum XML/XSL et SOAP
    Réponses: 12
    Dernier message: 04/09/2002, 16h29

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