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

Python Discussion :

Python et xml


Sujet :

Python

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 192
    Points : 160
    Points
    160
    Par défaut Python et xml
    Bonjour,

    je viens vers vous car j'ai besoin de votre aide....

    j'ai un fichier xml qui se présente comme ça ( réduit pour l'example ) :

    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
    21
     
    <Extension name="PDF" >
    	<Group description="Format" >
    		<Parameter name="toto" category="Edit" >
    			<Value value="toto.txt">
    		</Parameter>
    		<Parameter name="tata" category="Select" >
    			<Value default="true" >"Value1"</Value>
    			<Value>"Value2"</Value>
    			</Parameter>
    	</Group>
    	<Group description="Couleur" >
    		<Parameter name="titi" category="Edit" >
    			<Value value="titi.txt" >
    		</Parameter>
    		<Parameter name="tutu" category="Select" >
    			<Value default="true" >"Value1"</Value>
    			<Value>"Value2"</Value>
    		</Parameter>
    	</Group>
    </Extension>
    j'aimerais créer un script qui m'affiche toutes les cas possibles, par exemple :

    toto.txt - Value1 - titi.txt Value1
    toto.txt - Value1 - titi.txt Value2
    toto.txt - Value2 - titi.txt Value1
    toto.txt - Value2 - titi.txt Value2


    j'ai donc écrit une boucle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    import xml.etree.ElementTree as ET
    root = ET.parse("monfichier.xml")
    for Extension in root.getiterator("Extension"):
        text = Extension .get("formatName")
        for Group in Engine.getiterator("Group"):
            for Parameter in Group.getiterator("Parameter"):
                for Value in Parameter.getiterator("Value"):
                    text += " - " +str(Value.text)
    mais ça n'affiche pas vraiment ce que je veux...et là je séche un peu.. si vous avez une idée...

    merci

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,
    Il est dommage que vous ne preniez pas en compte l'ensemble des attributs que donne la bibliothèque pour inspecter le XML.
    Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    import xml.etree.ElementTree as ET
    root = ET.parse("monfichier.xml")
     
    r = ET.XML(xml)
    for e in r.findall('.//Group/Parameter'):
        name = e.attrib['name']
        for f in e.findall('./Value'):
            print 'name: %s, values: %s, text=%s' % (name, f.attrib, f.text)
    print 'done'
    "produit":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    name: toto, values: {'value': 'toto.txt'}, text=None
    name: tata, values: {'default': 'true'}, text=Value1
    name: tata, values: {}, text="Value2"
    name: titi, values: {'value': 'titi.txt'}, text=None
    name: tutu, values: {'default': 'true'}, text="Value1"
    name: tutu, values: {}, text="Value2"
    Ce n'est pas encore ce que vous voulez: c'est juste pour illustrer mon propos.

    Il serait bon de revoir la régularité de vos constructions.
    Car s'il n'est pas interdit d'avoir:
    • <Value value="toto.txt"/>
    • <Value default="true" >"Value1"</Value>

    Ca ajoute des "if-then-else" et le traitements de cas de figures qui pourraient être évités. Ainsi que des prises de têtes si d'aventure vous souhaiteriez valider les constructions avec un DTD ou un XSD.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 192
    Points : 160
    Points
    160
    Par défaut
    Bonjour,

    Merci. j'ai pris l'exemple sur un forum, donc je n'ai pas vraiment cherché les diffréentes fonctions que pouvait m'apporter la bibliothèque. j'essaie de faire simple sans me compliquer la tache.

    pour ce qui est du xml, l'original est bon, je n'ai pas le droit d'y toucher, mais le xml que j'ai montré est juste une réprésentation sans toutes les balises que contient l'original.

    J'essaie de chercher, mais à chaque fois, j'obtiens :

    toto.txt - Value1
    toto.txt - Value1
    titi.txt Value1
    titi.txt Value2

    merci pour votre aide. J'essaie de trouver la façon qui pourrait m'afficher tous les cas possibles de valeurs que je pourrais avoir.

Discussions similaires

  1. python et xml
    Par kali38 dans le forum Général Python
    Réponses: 0
    Dernier message: 10/05/2011, 11h22
  2. Python et Xml
    Par yassineonline dans le forum Forum général ERP
    Réponses: 0
    Dernier message: 02/04/2011, 16h26
  3. python e xml problème balise de fermeture
    Par chrix10.2 dans le forum Général Python
    Réponses: 2
    Dernier message: 19/12/2006, 09h55
  4. [python][DOM] alléger un fichier XML
    Par Mireyu_c dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 02/06/2006, 10h52

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