ElementTree.SubElement用于什么参数?

时间:2012-04-02 06:01:20

标签: python xml elementtree

我看过这里的文档:

http://docs.python.org/dev/library/xml.etree.elementtree.html#xml.etree.ElementTree.SubElement

parent和tag参数看起来很清楚,但是我将属性名称和值放在哪种格式?我找不到任何先前的例子。额外的**参数是什么格式?

我收到并错误地尝试调用SubElement本身,说它没有定义。谢谢。

2 个答案:

答案 0 :(得分:19)

SubElement是 ElementTree (非元素)的函数,它允许为元素创建子对象。

  • attrib 会获取包含属性的字典 您要创建的元素。

  • * * extra 用于其他关键字参数,这些参数将作为属性添加到元素中。

示例:

>>> import xml.etree.ElementTree as ET
>>>
>>> parent = ET.Element("parent")
>>>
>>> myattributes = {"size": "small", "gender": "unknown"}
>>> child = ET.SubElement(parent, "child", attrib=myattributes, age="10" )
>>>
>>> ET.dump(parent)
<parent><child age="10" gender="unknown" size="small" /></parent>
>>>

答案 1 :(得分:2)

如果你进一步查看你链接到它处理class xml.etree.ElementTree.Element(tag, attrib={}, **extra)的位置的同一页面,它会告诉你任何额外的参数是如何工作的,例如:

from etree import ElementTree as ET
a = ET.Element('root-node', tag='This is an extra that sets a tag')
b = ET.SubElement(a, 'nested-node 1')
c = ET.SubElement(a, 'nested-node 2')
d = ET.SubElement(c, 'innermost node')
ET.dump(a)

这也向您展示子元素的工作原理,您只需告诉它要将其附加到哪个元素(可以是子元素)。对于未来,也提供一些代码,以便更容易看到你正在做什么/想要什么。