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

Odoo (ex-OpenERP) Discussion :

XML, Python, boucles et variable [V10]


Sujet :

Odoo (ex-OpenERP)

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2018
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2018
    Messages : 95
    Points : 79
    Points
    79
    Par défaut XML, Python, boucles et variable
    Bonjour,

    Je souhaites mettre dans une variable un peu de code XML contenant une variable python.

    De plus je dois boucler pour afficher une ou plusieurs fois ce code:

    Un peu de code pour mieux expliquer :

    Python :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    zone_code_school = self.school_name_id.zone_code_ids.zone_code
    Variable python et xml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xml = """<CodeZone>"""+zone_code_school+"""</CodeZone>"""
    Le code zone peut se retrouver seul ou alors être multiplié par 2 ou 3 tout dépend de combien de "zone_code_school" je trouve dans la variable "zone_code_school"

    Je ne sais pas comment m'y prendre pour boucler sur zone_code_school et en plus afficher autant de <CodeZone>"""+zone_code_school+"""</CodeZone> que de résultat trouver.

    Avez vous une idée ?



    Merci

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Développeur logiciels
    Inscrit en
    Février 2016
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

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

    Informations forums :
    Inscription : Février 2016
    Messages : 22
    Points : 34
    Points
    34
    Par défaut
    Peux-tu afficher le résultat que tu aimerais obtenir ? Je ne comprends pas bien ta question.

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2018
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2018
    Messages : 95
    Points : 79
    Points
    79
    Par défaut
    Merci pour ta réponse.

    Voila comment j'ai construit ma boucle:

    Code Python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
            for rec_school in self.school_name_id.zone_code_ids:
                zone_code_school = rec_school.zone_code
                zone_code_xml = """<CodeZone>"""+zone_code_school+"""</CodeZone>"""
                print zone_code_xml

    Ce print m'affiche :
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <CodeZone>57118745</CodeZone>
    <CodeZone>57118689</CodeZone>

    Jusque là c'est parfait !

    Le zone_code_xml je l'utilise comme ceci dans mon fichier XML :

    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
                            <ZonesServices>
                                """+zone_code_xml+"""
                            </ZonesServices>

    Le problème c'est que comme je suis sorti de ma boucle et que si je fais un print, ce code m'affiche :

    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
                            <ZonesServices>
                                <CodeZone>57118689</CodeZone>
                            </ZonesServices>

    Alors que je souhaite :

    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
                            <ZonesServices>
                                <CodeZone>57118745</CodeZone>
                                <CodeZone>57118689</CodeZone>
                            </ZonesServices>

    Je sors de ma boucle parce que j'ai plusieurs codes terminaux à traiter pour différents services.

    Une idée ?

    Merci

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Développeur logiciels
    Inscrit en
    Février 2016
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

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

    Informations forums :
    Inscription : Février 2016
    Messages : 22
    Points : 34
    Points
    34
    Par défaut Réponse à ta préoccupation
    Code Python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    from lxml import etree
     
    zone_code_list = []
    ZonesServices = etree.Element("ZonesServices")
     
    for rec_school in self.school_name_id.zone_code_ids:
        zone_code_school = rec_school.zone_code
        zone_code_xml = zone_code_school
        zone_code_list.append([zone_code_xml])
     
    for zone_code in zone_code_list:
       CodeZone = etree.SubElement(ZonesServices, "CodeZone")
       CodeZone.text = str(zone_code[0])
     
    print(etree.tostring(ZonesServices, pretty_print=True))

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2018
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2018
    Messages : 95
    Points : 79
    Points
    79
    Par défaut
    J'ai déclaré une variable de type liste et j'ai bouclé en ajoutant mon code xml grâce à append(). A la fin, j'ai redécoupé cette liste et ça fonctionne. Merci

    Code Python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
            liste_zone_code_xml = []
            for rec_school in self.school_name_id.zone_code_ids:
                zone_code_xml_old = """<CodeZone>"""+rec_school.zone_code+"""</CodeZone>"""
                liste_zone_code_xml.append(zone_code_xml_old)
            zone_code_xml = ''.join(liste_zone_code_xml)

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

Discussions similaires

  1. [xml] [flash] boucle
    Par Alex35 dans le forum Flash
    Réponses: 2
    Dernier message: 25/10/2006, 12h04
  2. Grand Débutant : problème boucle et variable
    Par carelha dans le forum Langage
    Réponses: 2
    Dernier message: 02/08/2006, 19h33
  3. boucles et variables
    Par pfrib dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 27/07/2006, 09h14
  4. [SimpleXML] PHP XML et accès aux variables
    Par vanilla dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 21/04/2006, 17h58
  5. Boucle avec variable à incrémenter
    Par snoop dans le forum Linux
    Réponses: 2
    Dernier message: 19/03/2004, 11h07

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