Problema con los encodings al generar xml usando lxml

Mikel Larreategi mlarreategi en codesyntax.com
Jue Ago 28 08:17:55 CEST 2008


2008/8/27 Cesar Ortiz <cesar en ortiz.name>:
> Hola listeros,
>
> A ver si alguno se ha enfrentado a esto antes con lxml... Que me estoy
> quedando mico.
> Quiero generar un xml, con lxml, creando la información a pelo. Ahí va el
> codigo:

Nuestros eternos problemas con iso, utf y unicod... que no acabarán
nunca hasta que todos los americanos del norte empiecen a dominar el
español... ;)

>
> #!/usr/bin/python
> # -*- coding: iso-8859-1 -*-

Con esto "sólo" dices que todos los caracteres especiales que están en
este archivo están en codificación iso-8859-1.

> import sys
> from lxml import etree
>
>
> root = etree.Element('root')
> tree = etree.ElementTree(root) # wrapper
> dato = etree.SubElement(root,'dato')
> dato.text = unicode('Camión','iso-8859-1')

O sea, que siguiendo lo que has escrito arriba, el caracter ó que hay
aquí estará en iso-8859-1

>
> print tree.docinfo.encoding
>
> #--- Imprimimos
> print etree.tostring(root,encoding="utf-8",xml_declaration=True)
> print etree.tostring(root,encoding="latin1",xml_declaration=True)
>
> Y esta es la salida:
>
> UTF-8
> <?xml version='1.0' encoding='utf-8'?>
> <root><dato>Camión</dato></root>
> <?xml version='1.0' encoding='latin1'?>
> <root><dato>Camión</dato></root>
>

Esta salida, la da tu consola? En qué codificación está tu consola?


Mikel

-- 
Mikel Larreategi
mlarreategi en codesyntax.com

CodeSyntax
Azitaingo Industrialdea 3 K
E-20600 Eibar
Tel: (+34) 943 82 17 80
------------ próxima parte ------------
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes


Más información sobre la lista de distribución Python-es