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 :

ElementTree : Affectation du champ text d'un element


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 4
    Par défaut ElementTree : Affectation du champ text d'un element
    Bonjour à tous,

    Je débute un peu avec le xml en Python, et je me heurte à un petit (je l'espère) problème lors de la modification de la valeur text d'un element. En clair, j'ouvre un fichier xml et ensuite je essaie d'affecter une valeur au champ text de chaque noeud, mais il semble qu'ElementTree type les données extraites car je ne peux pas mettre du texte si auparavant dans le champ il y avait un nombre... pourtant rien n'est indiqué sur le type de donnée dans le xml source..

    Je ne vois pas comment contourner le problème, voici un extrait du code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    cfile = 1
    for drecord in doc.getroot().findall("DATA_RECORD"):
         cfile = cfile + 1
         elem = drecord.find("PID_PSAESRV") 
         elem.text = "toto " + str(cfile)
    Dans le xml on a un truc du style :

    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
     
      <DATA_RECORD>
        <INSTANCE_CTRLM>98554</INSTANCE_CTRLM>
        <INSTANCE_FILS>98554</INSTANCE_FILS>
        <INSTANCE_FILS2>98554</INSTANCE_FILS2>
        <RCI_CTRLM>AMGLFSJGENGL</RCI_CTRLM>
        <RCI_FILS> </RCI_FILS>
        <PRCSTYPE>Application Engine</PRCSTYPE>
        <PRCSNAME>FS_JGEN</PRCSNAME>
        <STATUS>Succès</STATUS>
        <RQSTDTTM>11/07/2011 02:08:17</RQSTDTTM>
        <BEGINDTTM>11/07/2011 02:08:27</BEGINDTTM>
        <ENDDTTM>11/07/2011 02:08:42</ENDDTTM>
        <DURATION_SS>15.1</DURATION_SS>
        <PID_PSAESRV>1683600</PID_PSAESRV>
      </DATA_RECORD>

    Merci, je m arrache les cheveux depuis ce matin...

  2. #2
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 4
    Par défaut
    J'ai modifié le xml d'entrée pour contourner le problème en ajoutant du texte devant le champ numérique, et du coup cela fonctionne car cela le force à être reconnue chaîne et plus en nombre.. mais bon c'est un peu du bidouillage !

  3. #3
    Membre Expert

    Homme Profil pro
    Diverses et multiples
    Inscrit en
    Mai 2008
    Messages
    662
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Diverses et multiples

    Informations forums :
    Inscription : Mai 2008
    Messages : 662
    Par défaut
    Je ne comprends pas ton problème…

    Chez moi, aussi bien en py2 qu’en py3, Element.text me renvoie toujours une chaîne*!

  4. #4
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 4
    Par défaut
    Oui il renvoie une chaîne mais si le noeud est numérique au départ, cela me déclenche une erreur de type value error quand j'essaie de mettre une chaine dans Element.text, à croire qu'il est typé !
    Mais je vais peut-être fermer le topic vu que j'ai contourné le problème (mais le pb de départ est bien là)

  5. #5
    Membre Expert

    Homme Profil pro
    Diverses et multiples
    Inscrit en
    Mai 2008
    Messages
    662
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Diverses et multiples

    Informations forums :
    Inscription : Mai 2008
    Messages : 662
    Par défaut
    Ben, désolé, mais chez moi, ça marche pareil, que je remplace une chaîne entièrement numérique par du texte ou vissé versa (le café)…

  6. #6
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 4
    Par défaut
    Ah? et tu remplies l'elementTree avec la methode parse(nom_du_xml) aussi?

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 18/06/2009, 13h27
  2. Afficher element selectionné d'un select sans un champ text
    Par eddycool dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 25/05/2009, 13h00
  3. Affecter une valeur à un "Label" de champ texte
    Par CyberMen dans le forum SAP Crystal Reports
    Réponses: 5
    Dernier message: 09/05/2008, 21h49
  4. affecter un fond de couleur un champ texte
    Par ROUSSIGNE dans le forum IHM
    Réponses: 2
    Dernier message: 18/09/2007, 18h05
  5. [Pb : champ Text = pas de valeur par defaut ?]
    Par mat_dum dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 18/08/2003, 12h57

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