Guardar achivo XML en Python 2.6.2
Chema Cortes
pych3m4 en gmail.com
Lun Jul 20 03:47:46 CEST 2009
El 18 de julio de 2009 21:34, Ramon Becerra
Reynoso<ingcomrbr en gmail.com> escribió:
> Ahora me encuentro con que no puedo hacer lo mismo en esta version y he
> buscado para ver cual Metodo me permite hacerlo, ya probe de esta manera,
>
> def write_to_file( self, doc, name = None ):
> fileName = open( name, "w" )
> try:
> fileName.write( doc.toprettyxml(indent=" "))
> finally:
> fileName.close()
>
> pero al volver a leer el XML me muestra los espacios, tambien quitandole el
> espacio, pero no se guarda como XML, sino como archivo de texto.
El prettyprint del minidom estaba basado en pyxml, módulo que ha
quedado apartado. Como alternativa, podrías usar el prettyprint del
DOM nivel 2:
from xml.dom.ext import PrettyPrint
from StringIO import StringIO
def toprettyxml_fixed (node, encoding='utf-8'):
s = StringIO()
PrettyPrint(node, stream=s, encoding=encoding)
return s.getvalue()
No entiendo lo de que no se guarda como XML, sobre todo cuando abres
el archivo directamente en modo texto. Prueba a abrirlo en binario:
fileName = open(name, "wb")
Otro consejillo: emplea el 'with'
from xml.dom.ext import PrettyPrint
with open(name,"wb") as f:
PrettyPrint(doc, f, encoding='utf-8')
_______________________________________________
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