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/