2011-06-30 40 views
5

即使是最简单的元素(树)实例,我也遇到了问题。如果我尝试在Python 2.7.1无法转储或写入ElementTree元素

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

下面的代码我得到一个错误:

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

我必须做一些错误的,但该文件没有在任何明显指着我。

回答

8

子元件不占用的元素作为第二个参数。该API docs给签名

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

即第二个参数是子元素

ElementTree docs给出更详细

的标签(即名称)向追加添加一个子元素的外观方法元素例如

root.append(child) 
1

SubElement的第二个参数是一个字符串 - 你想添加到根元素标签的名称。如果您正在处理Element s,您可能需要appendinsert