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 :

problème pour parser fichier xml


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2018
    Messages : 28
    Par défaut problème pour parser fichier xml
    bonjour je sollicite encore votre aide afin que vous puissiez m'aider
    j'ai écrit un petit script afin de pouvoir parser un petit fichier xml mais quand je lance l’interpréteur aucune erreur mais rien ne s'affiche
    fichier xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?xml version="1.0" encoding="UTF-8"?>
        <measData>
            <measInfo measInfoId="50331655">
                <granPeriod duration="3600S" endTime="00:00-00:00"/>
                <repPeriod duration="3600S"/>
                <measTypes>503325734 5033257485 5034452574 5078342575 5034542635 5037842636 </measTypes>
                <measValue measObjLdn="ULGROUP:UL BB Resource Group No.=0">
                    <measResults>51452 4742.45 256 6484 00 000 </measResults>
                </measValue>
            </measInfo>
    code python
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    # -*- coding: utf-8 -*-
     
    from lxml import etree
    import lxml
     
    tree = "C:\\Users\\HP PRO\\Desktop\\fahd.xml"
    arbre = etree.parse(tree)
    racine = arbre.getroot()
    for noeud in arbre.xpath('//measData/measInfo'):
        for measValue in noeud.iter('measValue'):
            valeur = measValue.get('measValue')
            print('valeur:{}'.format(valeur))
    je ne sais pas réellement ou se trouve le problème si c'est au niveau du chemin ou d'un autre élément
    merci d'avance pour votre aide

  2. #2
    Membre Expert

    Homme Profil pro
    Ingénieur Réseaux
    Inscrit en
    Juin 2012
    Messages
    877
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2012
    Messages : 877
    Par défaut
    Bonjour,

    Je me permets de répondre sans être expert loin de là.

    Une bonne pratique est de printer un maximum de choses pour constater un comportement, un dysfonctionnement.

    Essayes de faire des print dans tes boucles for et de vérifier les types que tu reçois.

    Tu trouveras certainement la solution ou les membres du forum auront plus d'entrain à t'aider.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2018
    Messages : 28
    Par défaut
    vraiment merci beaucoup pour la réponse en faisant comme vous me l'avez conseillé je me rend compte que la première boucle for n'est pas parcourue
    je ne sais pas si le problème se trouve au niveau de la syntaxe ou d'autre chose

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    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 741
    Par défaut
    Citation Envoyé par force_tranquille Voir le message
    je me rend compte que la première boucle for n'est pas parcourue
    je ne sais pas si le problème se trouve au niveau de la syntaxe ou d'autre chose
    Si la boucle "for" ne fait aucune itération, c'est que arbre.xpath('//measData/measInfo') retourne une liste vide.
    Côté Python, la syntaxe est bonne et la chaîne de caractères '//measData/measInfo' bien formée.
    Par contre, si çà ne trouve rien, c'est qu'il n'y a rien à trouver ou que l'expression XPath est "incorrecte" pour cherchez ce que vous voulez (mais çà c'est pas du Python... mais la syntaxe XPATH revue et corrigée par lxml).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2018
    Messages : 28
    Par défaut
    je vois je comprend mieux wiztricks
    cependant à partir de mon code pourriez vous me proposer un bon chemin xml car je lis la documentation dessus depuis trois jours
    mais bon j'identifie les nœuds pères fils tout mais bon je ne me retrouve toujours pas

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    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 741
    Par défaut
    Citation Envoyé par force_tranquille Voir le message
    cependant à partir de mon code pourriez vous me proposer un bon chemin xml car je lis la documentation dessus depuis trois jours
    Vous n'avez pas posté un fichier XML mais un extrait qui vous arrangeait pour illustrer votre soucis.... Et vu le découpage que vous avez fait, difficile d'en connaître la structure pour savoir ce que pourrait être un bon chemin.
    Mais en fait on s'en fout un peu, une chaîne de caractères comme '<a><b>1</b><b>2</b></a>' ferait aussi bien l'affaire (pourvu qu'elle traduise la structure du fichier initial). Après je ne vois pas l'intérêt d'utiliser lxml, xml.etree.ElementTree suffit largement (mais la syntaxe est différente)...
    Ceci dit dans tous les cas, çà commence par lancer la console Python et tester ses "patterns"...
    Pour arriver à obtenir ce qu'on veut:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    >>> import xml.etree.ElementTree as et
    >>> s = '<a><b>1</b><b>2</b></a>'
    >>> tree = et.fromstring(s)
    >>> for x in tree.iter('b'): print (x.text)
    ...
    1
    2
    >>>
    note: ne croyez pas que j'y sois arrivé du premier coup: je ne connais pas cette syntaxe là par coeur!

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

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

Discussions similaires

  1. Aide pour parser fichier XML
    Par kinder540 dans le forum Général Python
    Réponses: 9
    Dernier message: 08/01/2014, 16h13
  2. Réponses: 1
    Dernier message: 12/02/2013, 00h23
  3. Problème pour parser un XML
    Par Aspic dans le forum VB.NET
    Réponses: 3
    Dernier message: 22/01/2008, 20h05
  4. [encoding] Problème pour les fichiers XML avec notepad
    Par lehamster dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 21/11/2006, 15h56
  5. problème pour parser un fichier xml avec XML::Simple
    Par black_code dans le forum Modules
    Réponses: 3
    Dernier message: 30/01/2006, 19h32

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