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 :

structurer un fichier xml et le remplir à partir du tableau d'information


Sujet :

Python

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2011
    Messages
    297
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 297
    Par défaut structurer un fichier xml et le remplir à partir du tableau d'information
    Bonjour
    j'ai un tableau personne qui contient deux colonnes (nom , prenom)
    et un bouton de validation
    en cliquant sur le bouton je récupère les nom,prénom ...
    et j'arrive à créer un fichier xml vide .

    mon objectif c'est quand je clique sur le bouton de validation du tableau je crée le fichier xml qui structurer de la manière suivante
    <personne>
    <nom>
    ......
    </nom>
    <prenom>
    ......
    </prenom>
    </personne>
    et à chaque fois que je clique sur le bouton de validation du tableau je récupère toutes les personnes et les enregistrer dans le fichier xml

  2. #2
    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 je vois pas la difficulté ?

    Supposons que tu récupères tes données sous la forme d’une liste de tupples [(nom, prénom), (nom, prénom), …]. T’as plus qu’à itérer sur celle-ci, et écrire du texte dans le fichier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    # list is your list of (names, forenames), file is a write-opened file
    for id in list:
        file.write("<personne>\n    <nom>\n        "  + id[0] +
                   "\n    </nom>\n    <prenom>\n        " + id[1] +
                   "\n    </prenom>\n</personne>\n")
    Après, tu peux utiliser les bibliothèques xml de python, mais si c’est juste pour générer du marquage aussi simple, ça me semble un peu démesuré

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2011
    Messages
    297
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 297
    Par défaut
    mais mon fichier xml n'est pas encore crée
    il sera crée apres la validation
    c' est trop compliqué quand je valide avec le bouton je dois faire 3 choses en même temps :
    1. récupérer les données
    2. générer le fichier xml bien structuré
    3. insérer les données dans le fichier xml
    donc dans ton code je vois pas tout ca

  4. #4
    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
    Bon, je suppose que la récupération des données ne te pose pas de problème (sinon il me faudrait des précision sur leur source…). Donc, à partir de ton tableau [(nom, prenom), …] placé dans la variable list, tu fais tes deux dernières étapes d’un coup :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    file = open("chemin/vers/ton/fichier.xml", "w")
    for id in list: # id contient à chaque fois une paire (nom, prénom)
        file.write("<personne>\n    <nom>\n        "  + id[0] +
                   "\n    </nom>\n    <prenom>\n        " + id[1] +
                   "\n    </prenom>\n</personne>\n")
    file.close()
    Et voilà, tu as un fichier xml bien structuré (et même qui présente bien)

    Évidemment, ce n’est pas la méthode canonique pour créer du xml, mais c’est simple et ça marche (un fichier xml n’est que du texte, il suffit donc de l’écrire correctement pour qu’il soit valide, pas forcément nécessaire de créer un DOM juste pour ça) !

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2011
    Messages
    297
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 297
    Par défaut
    j'ai testé ce code en se basant sur ton exemple
    mais ca marche pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    # -*- coding: utf-8 -*-
    def ecrireDansFichier(fichier):
        list = ["nom1", "prenom1", "nom2", "prenom2"]
        file = open("C:/Documents and Settings"+"//"+fichier, "w")
        for id in list: # id contient � chaque fois une paire (nom, pr�nom)
            file.write("<personne>\n    <nom>\n        "  + id[0] +
                       "\n    </nom>\n    <prenom>\n        " + id[1] +
                       "\n    </prenom>\n</personne>\n")
            file.close()
    ecrireDansFichier("fichier.xml")
    j'ai ce message d'erreur : "\n </prenom>\n</personne>\n")
    ValueError: I/O operation on closed file

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2011
    Messages
    297
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 297
    Par défaut
    au faite il me crée un fichier xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <personne>
        <nom>
            n
        </nom>
        <prenom>
            o
        </prenom>
    </personne>
    mais on voit qu'il n'a pas bien inséré les valeurs

  7. #7
    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
    Oui, parce que j’étais parti sur le principe d’une liste de tupples (nom, prénom).

    Si ta liste est juste [nom, prenom, nom, prenom, …], il faut utiliser le code suivant, par exemple (c’est pas beau et pas pythonesque, mais ça devrait marcher) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for i in range(0, len(list), 2): # À chaque itération, on “consomme” deux éléments de list, un nom et un prénom…
        file.write("<personne>\n    <nom>\n        "  + list[i] +
                   "\n    </nom>\n    <prenom>\n        " + list[i+1] +
                   "\n    </prenom>\n</personne>\n")
        file.close()

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2011
    Messages
    297
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 297
    Par défaut
    merci
    ton exemple marche bien , je vais essayer d'adapter ce principe à mon travail

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 27/08/2012, 11h21
  2. Est-ce que la Structure de fichier XML est bon pour parser en JAVA
    Par maydenec dans le forum XML/XSL et SOAP
    Réponses: 7
    Dernier message: 16/03/2011, 13h21
  3. Fichier XML "ordre variable" à charger dans un Tableau
    Par argoet dans le forum EDI et Outils pour Java
    Réponses: 3
    Dernier message: 21/09/2010, 14h40
  4. [XML] Bien structurer un fichier XML
    Par Peanut dans le forum XML/XSL et SOAP
    Réponses: 6
    Dernier message: 30/04/2007, 10h21
  5. [XML] Choix entre différentes structures de fichier XML
    Par loic_86 dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 21/02/2007, 05h39

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