generar xml con sax2 en python

Tengo un modelo de datos o un objeto de una clase, y necesito inicializarlo leyendo un archivo xml, o crear este objeto desde cero y enviarlo a un archivo xml. Anteriormente, simplemente utilizaba operaciones de cadena de python para leer xml (file.read + string.find) y escribir xml (file.write), sin comprobación de errores.

Ahora estoy pensando en usar Sax2 para hacer esto. Sé cómo hacerlo para la lectura, pero no estoy muy claro acerca de escribir. Parece que el sax2 se usa para el caso cuando hay un xml original y desea imprimir después de ciertas modificaciones. En mi caso, quiero enviar mi modelo de datos a xml, sin ningún xml original. Me pregunto si sax2 es bueno o adecuado para esto o debo seguir usando mi método anterior. ¿Cuál es la mejor manera de ingresar / generar un objeto de clase desde / hacia XML con python? La clase es muy simple (solo una lista de la lista de información de la lista, es decir, raíz -> hijos -> nietos) y tamaño pequeño.

Gracias por cualquier sugerencia.

Prueba el modo de procesamiento XML pythonic: ElementTree .

Generar una salida XML es fácil con `xml.etree.ElementTree.ElementTree.write () .

write(file, encoding="us-ascii", xml_declaration=None, method="xml")

Escribe el árbol de elementos en un archivo, como XML. archivo es un nombre de archivo o un objeto de archivo abierto para escritura. la encoding 1 es la encoding de salida (el valor predeterminado es US-ASCII). xml_declaration controla si se debe agregar una statement XML al archivo. Use Falso para nunca, Verdadero para siempre, Ninguno solo si no es US-ASCII o UTF-8 (el valor predeterminado es Ninguno). el método es “xml”, “html” o “text” (el valor predeterminado es “xml”). Devuelve una cadena codificada.

Ejemplo de carga de un objeto ElementTree desde un archivo de texto:

 >>> from xml.etree.ElementTree import ElementTree >>> tree = ElementTree() >>> tree.parse("index.xhtml")