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 :

xml : writexml versus toprettyxml


Sujet :

Python

  1. #1
    Membre averti Avatar de awalter1
    Inscrit en
    Août 2004
    Messages
    994
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 994
    Points : 407
    Points
    407
    Par défaut xml : writexml versus toprettyxml
    Bonjour,
    J'ai une structure xml que j'imprime de la façon suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    print dom.toprettyxml()
     
    resultat :
    <?xml version="1.0" ?>
    <message:AIXMBasicMessage gml:id="I" xmlns:aixm="B">
    ce qui est attendu. Par contre lorsque j'écris dans un fichier, je n'ai pas la même chose : le retour à la ligne après l'entête ne se fait plus
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    dom.writexml(desc_File)
     
    resultat:
    <?xml version="1.0" ?><message:AIXMBasicMessage gml:id="I" xmlns:aixm="B">
    Comment y remédier, avec des méthodes xml.
    Merci

  2. #2
    Membre éprouvé

    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
    Points : 1 273
    Points
    1 273
    Par défaut
    Un simple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    with open("your/file.xml", "w") as f:
        f.write(dom.toprettyxml())
    ?

  3. #3
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,
    Citation Envoyé par awalter1 Voir le message
    Comment y remédier, avec des méthodes xml.
    Je ne connais pas l'encodage de la méthode XML correspondant à RTFM, mais "The Fine Manual" dit:
    La réponse est RTFM qui dit:
    Node.writexml(writer[, indent=""[, addindent=""[, newl=""]]])¶

    Write XML to the writer object. The writer should have a write() method which matches that of the file object interface. The indent parameter is the indentation of the current node. The addindent parameter is the incremental indentation to use for subnodes of the current one. The newl parameter specifies the string to use to terminate newlines.
    Donc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    from xml.dom.minidom import parseString
     
    XML = """<?xml version="1.0" ?>
    <blah>blah</blah>
    """
     
    dom = parseString(XML)
    print dom.toprettyxml() 
    with open('test.xml', 'w') as f:
        dom.writexml(f,addindent="  ", newl="\r")
    Cordialement
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  4. #4
    Membre averti Avatar de awalter1
    Inscrit en
    Août 2004
    Messages
    994
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 994
    Points : 407
    Points
    407
    Par défaut
    J'opte pour la solution de mont29 qui est en effet simple.
    Par contre, la proposition de wiztricks me genere les caractères "<cr>" en début et fin de chaque ligne, exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?xml version="1.0" ?> <cr><message:AIXMBasicMessage gml:id="I"><cr>
          <cr>   <message:hasMember><cr>
    Si je remplace \r par \n j'ai plein de lignes vides qui s'intercalent et que je dois ensuite supprimer ...
    Merci pour votre aide

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

Discussions similaires

  1. configuration : XML versus annotations
    Par loicmidy dans le forum Hibernate
    Réponses: 0
    Dernier message: 22/05/2010, 15h13
  2. Bases de données versus XML
    Par reeda dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 07/09/2008, 15h30
  3. XML versus Serialization
    Par blaise_laporte dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 23/04/2007, 14h22
  4. XML versus BDD
    Par Seth77 dans le forum XQUERY/SGBD
    Réponses: 2
    Dernier message: 02/02/2007, 10h00
  5. Débutant XML
    Par viny dans le forum XML/XSL et SOAP
    Réponses: 8
    Dernier message: 25/07/2002, 12h07

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