Re: Guardar achivo XML en Python 2.6.2
Chema Cortes <[email protected]>
| Newsgroups | gmane.comp.python.general.castellano |
|---|---|
| Message-ID | <[email protected]> |
El 18 de julio de 2009 21:34, Ramon Becerra Reynoso<[email protected]> 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