El 25 de agosto de 2010 10:02, Mauricio Baeza
<mauri...@correolibre.net> escribió:

> Gracias por tu respuesta, efectivamente, abriéndolo con:
>
> archivo=codecs.open("Factura.xml","w",encoding="utf8")
>
> puedo grabar sin problemas el archivo editado, pero me queda la duda por que 
> al generarlo puedo guardarlo sin problemas con caracteres acentuados con las 
> siguientes líneas:
>
> archivo = open('Factura.xml', 'w')
> archivo.write(domDoc.toxml())
> archivo.close()
>
> pero no al editarlo.

Después de analizar un poco el problema que comentas, veo que en la
edición estás añadiendo un atributo con una cadena "no-unicode" leída
de un fichero de texto. Al pasar el dom a xml (por defecto en utf8) es
donde salta el problema al no saber pasar a unicode, antes incluso de
grabar en el fichero.

Con python3, todo texto es unicode y no aparece este problema; pero
con python2 debes pasar la cadena a unicode antes de añadirla al dom:

sello = open('sellob64.txt', 'r').read()
sello = unicode(sello, "utf8")  #cambia a la codificación que tenga el fichero

También podrías leer el fichero de texto en utf8 con el módulo codecs
tal y como te había comentado antes.

Espero que algún experto en xml pueda confirmar lo dicho.
_______________________________________________
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

Responder a