在文档中,给出了以下行来描述如何启动类对象
class xml.etree.ElementTree.Element(tag, attrib={}, **extra)
在那之下有一行说
extra包含其他属性,以关键字参数的形式给出。
我一直在尝试,但我不确定这究竟是什么意思。例如,我想添加文本属性,但它无法正常工作。我的论点似乎是转到 attrib 属性。
以下是示例代码以突出显示我的问题
>>> import xml.etree.ElementTree as ET
>>> tree = ET.Element('Level 0',text = 'test text')
>>> tree.attrib #This should be empty
{'text': 'test text'}
>>> tree.text #test text should be here
>>>
以下是文档的链接以供参考。
http://docs.python.org/3.3/library/xml.etree.elementtree.html#element-objects
答案 0 :(得分:2)
这是完全正确的。 XML标记属性存储在Element.attrib
结构中。
然后,当您将ElementTree结构输出到XML时,.attrib
值将用于生成XML属性:
>>> elem = ET.Element('Level0', text='test text')
>>> ET.tostring(elem)
'<Level0 text="test text" />'
函数签名中的**keywords
语法捕获函数调用的其他关键字参数;您可以传入显式字典或,您可以使用关键字参数来定义属性。请参阅function definitions documentation。
因此,以下两种形式是等效的(对于ElementTree.Element()
次调用):
ET.Element('Level0', text='test text')
ET.Element('Level0', {'text': 'test text'})