下面的代码应该向给定的 XML 元素添加子元素,但出现错误:
xml.SubElement(new,xml.Element(self.XMLEntriesList['RiverCallPower'])) TypeError: must be xml.etree.ElementTree.Element, not None
但是当我检查时,有问题的元素被确认为 Element
,而不是 None
。
self.XMLEntriesList['RiverCallPower']
Out[3]: Element 'RiverCallPower' at 0x04B83420
我做错了什么?
import xml.etree.ElementTree as xml
self.tree = xml.parse('strategies.xml')
self.root = self.tree.getroot()
...
new=self.root.append(xml.Element('newElement'))
xml.SubElement(new,xml.Element(self.XMLEntriesList['RiverCallPower']))
最佳答案
我怀疑问题不在于 XMLEntriesList['RiverCallPower']
部分,而是 new
变量 None
。发生这种情况是因为 append()
只是将新元素添加到根元素的子元素列表中,并且不返回任何内容。试试这个方法:
.......
new = xml.Element('newElement')
self.root.append(new)
xml.SubElement(new,xml.Element(self.XMLEntriesList['RiverCallPower']))
关于python - 使用 ElementTree 添加子元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33115017/