2011-06-30 10 views
5

Tengo un problema al generar incluso las instancias más simples de Element (Tree). Si intento el siguiente código en Python 2.7.1No se puede volcar o escribir un elemento ElementTree

>>> from xml.etree.ElementTree import Element, SubElement, tostring 
>>> root = Element('parent') 
>>> child = Element('child') 
>>> SubElement(root, child) 
>>> tostring(root) 

consigo un error:

TypeError: cannot serialize <Element 'root' at 0x9a7c7ec> (type Element) 

debo estar haciendo algo mal pero la documentación no me está apuntando a algo obvio.

Respuesta

8

subelemento no toma un elemento como el segundo parámetro. El API docs dan la firma como

SubElement(parent, tag, attrib={}, **extra) 

es decir, el segundo parámetro es la etiqueta (es decir, nombre) del elemento de sub

El ElementTree docs dar más detalles

Para añadir un aspecto elemento hijo en el append método en Elemento, por ejemplo

root.append(child) 
1

SubElement 's segundo parámetro es una cadena - el nombre de la etiqueta que desea añadir al elemento raíz. O desea append o insert si se trata de Element s.

Cuestiones relacionadas