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 :

Parser du xml en python


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2013
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2013
    Messages : 63
    Par défaut Parser du xml en python
    bonjour a tous je travaille sur une application python et j'utilise la lib suds pour faire appel a un web service. j'obtiens comme retour un brin de xml que j'essaye de parser mais en vain. d'abord j'ai pu voir pas mal de libs permettant de le faire mais le problème est que celles-ci traitent plutôt de fichiers xml alors que moi je traite directement ma reponse dans mon script. quelqu'un pourrait-il donc me proposer quelque chose d'autre. voici la reponse que le web service m'envoie:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?xml version="1.0" encoding="utf-16"?>
    <CurrentWeather>
      <Location>Abidjan, Cote d'Ivoire (DIAP) 05-15N 003-56W 8M</Location>
      <Time>Jan 06, 2015 - 05:30 AM EST / 2015.01.06 1030 UTC</Time>
      <Wind> from the N (360 degrees) at 8 MPH (7 KT) (direction variable):0</Wind>
      <Visibility> 1 mile(s):0</Visibility>
      <Temperature> 78 F (26 C)</Temperature>
      <DewPoint> 59 F (15 C)</DewPoint>
      <RelativeHumidity> 50%</RelativeHumidity>
      <Pressure> 29.94 in. Hg (1014 hPa)</Pressure>
      <Status>Success</Status>
    </CurrentWeather>

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 743
    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 743
    Par défaut
    Salut,

    Si vous n'avez pas de besoins plus exotiques, la bibliothèque ElementTree devrait suffire.
    note: et plus particulièrement la méthode .fromstring

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

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2013
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2013
    Messages : 63
    Par défaut
    ok sauf que avec cette methode je stocke mon retour xml dans une variable de type string que je passe par la suite, en paramètre à la methode fromstring, j'obtiens cette erreur:
    xml.etree.ElementTree.ParseError: encoding specified in XML declaration is incorrect

    voici le code:

    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
     
     
    #!/usr/bin/python
    # -*- coding: utf-8 -*-
     
    from suds.client import Client
    import xml.etree.ElementTree as ET
     
    my_ws=Client("http://www.webservicex.net/globalweather.asmx?WSDL")
     
    result=my_ws.service.GetWeather("abidjan","cote d'ivoire")
     
    string_xml=""
    string_xml=string_xml+result
    root=ET.fromstring(string_xml)

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 743
    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 743
    Par défaut
    Citation Envoyé par roadbecri Voir le message
    ok sauf que avec cette methode je stocke mon retour xml dans une variable de type string que je passe par la suite, en paramètre à la methode fromstring, j'obtiens cette erreur:
    xml.etree.ElementTree.ParseError: encoding specified in XML declaration is incorrect
    Cà fonctionne avec le string que vous avez posté précédemment.
    Que contient le string passé à fromstring?

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

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2013
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2013
    Messages : 63
    Par défaut
    il contient le retour xml tel que ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?xml version="1.0" encoding="utf-16"?>
    <CurrentWeather>
      <Location>Abidjan, Cote d'Ivoire (DIAP) 05-15N 003-56W 8M</Location>
      <Time>Jan 06, 2015 - 11:00 AM EST / 2015.01.06 1600 UTC</Time>
      <Wind> from the N (360 degrees) at 6 MPH (5 KT) (direction variable):0</Wind>
      <Visibility> 2 mile(s):0</Visibility>
      <Temperature> 87 F (31 C)</Temperature>
      <DewPoint> 51 F (11 C)</DewPoint>
      <RelativeHumidity> 29%</RelativeHumidity>
      <Pressure> 29.83 in. Hg (1010 hPa)</Pressure>
      <Status>Success</Status>
    </CurrentWeather>

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 743
    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 743
    Par défaut
    Salut,

    Effectivement je reproduis votre problème avec Python 2.7 et c'est un bug connu.
    Si vous ne pouvez pas utiliser une version plus récente, il faudra essayez avec une bibliothèque externe genre lxml.

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

  7. #7
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2013
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2013
    Messages : 63
    Par défaut
    désolé mais quand je vérifie le type du string en question à l'aide de la commande type(nom_du_string), j'obtiens ce resultat:

    il semblerait que son type ait changé. Pouvez-vous svp m'éclairer?? merci d'avance

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

Discussions similaires

  1. parser un fichier xml en python
    Par titi2013 dans le forum Général Python
    Réponses: 1
    Dernier message: 05/03/2014, 13h08
  2. [C#] Parser du XML
    Par karl3i dans le forum Windows Forms
    Réponses: 5
    Dernier message: 27/02/2009, 09h46
  3. [DOM XML] Comment parser du XML avec une version 4.3 ?
    Par ouioui2000 dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 18/10/2005, 15h52
  4. [FLASH MX2004] Parser un XML en action script
    Par jejeman dans le forum Flash
    Réponses: 6
    Dernier message: 20/09/2005, 17h25
  5. [XSL] Parser fichier xml : erreurs + incompréhensions
    Par totobouchon dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 19/07/2005, 15h47

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