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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.