El mié, 25-08-2010 a las 22:38 +0200, Luis Miguel Morillas escribió: > El 25 de agosto de 2010 20:30, Mauricio Baeza > <mauri...@correolibre.net> escribió: > > > > El mié, 25-08-2010 a las 13:33 +0200, Chema Cortes escribió: > > > > 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. > > _______________________________________________ > > > > Hola Chema... > > > > Agradezco el tiempo que le has dedicado... > > > > He probado a abrir el XML y guardar inmediatamente (sin editar) y me da el > > mismo error, también abrí el archivo de texto como me has enseñado y da el > > mismo error, por lo que todo apunta a que el problema esta en el modo en > > que minidom parsea el XML en la línea: > > > > domDoc = minidom.parse('factura.xml') > > > > Por lo pronto el tema esta resuelto con la línea que me has enseñado: > > > > archivo = codecs.open("factura.xml","w",encoding="utf8") > > > > Pero si, ojala algún experto en XML pueda iluminarnos... > > > > Puedes mandar una copia de los dos archivos (sellob64.txt y factura.xml) ? > > -- lm >
Gracias Luis, te lo he enviado a tu correo personal... Saludos -- Mauricio Baeza 10 años usando OpenOffice.org, libre, gratuito y seguro ____________________________ Todo lo que no es dado es perdido
_______________________________________________ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/