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 :

lxml et caractères non ascii


Sujet :

Python

  1. #1
    Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2003
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2003
    Messages : 48
    Points : 40
    Points
    40
    Par défaut lxml et caractères non ascii
    Salut,

    Je cherche à écrire et lire un fichier XML contenant des caractères non ascii
    Voici ce que j'ai fait :

    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
    17
    18
    19
    20
    # -*- coding: utf-8 -*-
    from lxml import etree
     
    def write_xml(filename):
            root_elt = etree.Element("Repository", {"version": str(1),
                                                    "val": "éléà"})
            elt_tree = etree.ElementTree(root_elt)
            tmp = etree.tostring(elt_tree, pretty_print=True, encoding="utf-8", xml_declaration=True)
            with open(filename, 'w') as f:
                f.write(str(tmp, encoding="utf-8"))
     
    def read_xml(filename):
            tree = etree.parse(filename)
            root = tree.getroot()
            version = int(root.get("version"))
            val = root.get("val")
     
    filename = "fic.xml"
    write_xml(filename)
    read_xml(filename)
    Voici la trace que j'obtiens :

    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
    Traceback (most recent call last):
      File "test.py", line 22, in <module>
        read_xml(filename)
      File "test.py", line 13, in read_xml
        tree = etree.parse(filename)
      File "lxml.etree.pyx", line 2954, in lxml.etree.parse (src/lxml\lxml.etree.c:56220)
      File "parser.pxi", line 1533, in lxml.etree._parseDocument (src/lxml\lxml.etree.c:82303)
      File "parser.pxi", line 1562, in lxml.etree._parseDocumentFromURL (src/lxml\lxml.etree.c:82596)
      File "parser.pxi", line 1462, in lxml.etree._parseDocFromFile (src/lxml\lxml.etree.c:81635)
      File "parser.pxi", line 1002, in lxml.etree._BaseParser._parseDocFromFile (src/lxml\lxml.etree.c:78544)
      File "parser.pxi", line 569, in lxml.etree._ParserContext._handleParseResultDoc (src/lxml\lxml.etree.c:74488)
      File "parser.pxi", line 650, in lxml.etree._handleParseResult (src/lxml\lxml.etree.c:75379)
      File "parser.pxi", line 590, in lxml.etree._raiseParseError (src/lxml\lxml.etree.c:74712)
    lxml.etree.XMLSyntaxError: Input is not proper UTF-8, indicate encoding !
    Bytes: 0xE9 0x6C 0xE9 0xE0, line 2, column 25
    J'ai essayé de jouer avec le paramètre encoding sans réussir à faire quelque chose de fonctionnel.

    Quelqu'un a une idée ?

  2. #2
    Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2003
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2003
    Messages : 48
    Points : 40
    Points
    40
    Par défaut
    En fait, la solution était tellement simple ... :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tmp = etree.tostring(elt_tree, pretty_print=True, encoding="ascii", xml_declaration=True)

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 23/10/2008, 12h08
  2. Recherche de caractères non ASCII
    Par baloo81 dans le forum Langage
    Réponses: 3
    Dernier message: 05/09/2008, 11h21
  3. Jeu de caractère non-ascii
    Par nyme92 dans le forum Administration système
    Réponses: 2
    Dernier message: 07/03/2008, 18h39
  4. Réponses: 3
    Dernier message: 08/02/2008, 19h34
  5. Détecter des caractères non-ASCII
    Par gvdmoort dans le forum Ruby
    Réponses: 2
    Dernier message: 27/01/2008, 13h16

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