0

在文档中,给出了以下行来描述如何启动类对象

class xml.etree.ElementTree.Element(tag, attrib={}, **extra)

在它下面有一行说

extra 包含附加属性,作为关键字参数给出。

我一直在尝试,但我不确定这到底意味着什么。例如,我想添加text属性,但它不能正常工作。我的论点似乎转而使用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

4

1 回答 1

2

这是完全正确的。XML 标记属性存储在Element.attrib结构中。

然后,当您将 ElementTree 结构输出到 XML 时,这些.attrib值将用于生成 XML 属性:

>>> elem = ET.Element('Level0', text='test text')
>>> ET.tostring(elem)
'<Level0 text="test text" />'

函数签名中的**keywords语法捕获函数调用的附加关键字参数;您可以传入显式字典也可以使用关键字参数来定义属性。请参阅函数定义文档

因此,以下两种形式是等价的(对于ElementTree.Element()调用):

ET.Element('Level0', text='test text')

ET.Element('Level0', {'text': 'test text'})
于 2013-03-03T22:09:12.827 回答