使用 ElementTree 添加子元素

Adding subelement with ElementTree

下面的代码应该向给定的 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() 只是将新元素添加到根元素的子元素列表中,而不是 return 任何东西。试试这个方法:

.......
new = xml.Element('newElement')
self.root.append(new)
xml.SubElement(new,xml.Element(self.XMLEntriesList['RiverCallPower']))