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 :

Python probleme pour traitement fichier Xml avec l'API dom


Sujet :

Python

  1. #1
    Candidat au Club
    Inscrit en
    Octobre 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 8
    Points : 3
    Points
    3
    Par défaut Python probleme pour traitement fichier Xml avec l'API dom
    Bonjour,

    Voila j'essaye de modifier un fichier xml et de remplacer l'original par le document créé et je comprends pas pourquoi la ligne ou je demande de sauvegarder le document refuse d'etre compilé car ces quelques lignes proviennent de sources que j'ai trouvé sur internet.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    fsock = open ( emplacement ) #ouverture du fichier
     
        xmldoc = parse ( emplacement )
     
        user_project = xmldoc.getElementsByTagName('project')
        user_dir_inc = user_project[0].getElementsByTagName('ge_user_incdir')
     
        print user_dir_inc
     
        user_project[0].setAttribute('ge_user_incdir', rep_inc)
     
        fsock.write(emplacement)
        fsock.close()


    Merci

  2. #2
    Membre expérimenté Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Points : 1 728
    Points
    1 728
    Par défaut Fichier en ecriture.
    Pour ecrire dans un fichier, il faut l'ouvrir .... en ecriture:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fsock = open(emplacement, 'w')

  3. #3
    Candidat au Club
    Inscrit en
    Octobre 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Merci
    Mais quand je rajoute l'ouverture avec le mode d'ecriture le compilateur n'arrive plus à parser mon document

  4. #4
    Membre habitué Avatar de ctiti60
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 75
    Points : 126
    Points
    126
    Par défaut
    Tu as quoi comment erreur exactement ? As-tu vérifié les problèmes potentiels de tabulations-espaces ?

    Et que vaut ta varaible emplacement ? Est-ce que tu l'as bien initialisé ?

  5. #5
    Candidat au Club
    Inscrit en
    Octobre 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    J'ai ExpatError no element found line 1 column 0
    il m'ouvre le fichier expatbuilder.py

    en me soulignant la ligne "parser.Parse("", True)"

    Ma variable emplacement fonctione normalement car elle fonctionne quand je l'ouvre pas avec le mode d'ecriture

  6. #6
    Membre habitué Avatar de ctiti60
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 75
    Points : 126
    Points
    126
    Par défaut
    Le fait de l'ouvrir en mode "w" efface le fichier.

    Ouvres ton fichier en "rw" et avant d'écrire dedans fais un seek(0) pour écrire au début du fichier. Ce que je dis est à tester, car je n'ai jamais tester le seek en Python.

    Sinon, tu écris dans un autre fichier, tu fermes les deux et puis tu fais un move ensuite.

  7. #7
    Candidat au Club
    Inscrit en
    Octobre 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Ok merci ca fonctionne jusqu'a l'ecriture ou il me dir qu'il y a une erreur d'input ou d'output "IOerror"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        fsock.seek(0)
        fsock.write(emplacement)
        fsock.close()

  8. #8
    Membre habitué Avatar de ctiti60
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 75
    Points : 126
    Points
    126
    Par défaut
    Est-ce que tu l'as écris comme cela :


  9. #9
    Candidat au Club
    Inscrit en
    Octobre 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Ui je me suis corrigé apres j'ai remis le code au dessus

  10. #10
    Membre habitué Avatar de ctiti60
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 75
    Points : 126
    Points
    126
    Par défaut
    Perso, je ferais le test avec un autre fichier en premier histoire de valider le résultat. Tu ouvres le premier en lecture et tu en ouvres un autre en écriture.

    Surtout que j'ai un doute sur ce que tu veux faire. Tu fais un :
    or emplacement doit être le nom de ton fichier.
    Cela veut dire que tu écris le nom de ton fichier dans le fichier ! J'imagine que c'est plutôt le contenu que tu souhaiterais écrire.

  11. #11
    Candidat au Club
    Inscrit en
    Octobre 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Ce que je veux c'est remplacer le fichier original par celui qui a été modifié

    Emplacement contient le chemin d'accés au fichier

    exemple:
    C:\C07966\test\00_01_060\ut\00_01_060_drul.rtp

  12. #12
    Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 103
    Points : 55
    Points
    55
    Par défaut
    Citation Envoyé par chenimitz Voir le message
    Ce que je veux c'est remplacer le fichier original par celui qui a été modifié

    Emplacement contient le chemin d'accés au fichier

    exemple:
    C:\C07966\test\00_01_060\ut\00_01_060_drul.rtp
    Il faudrait préciser :
    1. emplacement est obtenu comment, est-ce que c' est bien une string
    -> type (emplacement)
    2. Tu veux écraser LE CONTENU de ton fichier ou bien tu veux rajouter la ligne avec emplacement (auquel cas -> ouverture en mode append 'a' suffit)
    ...

Discussions similaires

  1. [JDOM] Utilisation JDOM pour traitement fichier XML
    Par said.aghzil dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 25/02/2013, 20h30
  2. generer fichier php pour obtenir fichier xml avec sax
    Par valmelissa dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 19/05/2011, 18h22
  3. Réponses: 4
    Dernier message: 14/09/2009, 10h19
  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. Ecrire un fichier XML avec la méthode Dom
    Par aswat dans le forum Général Python
    Réponses: 2
    Dernier message: 20/05/2006, 19h41

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