使用ElementTree添加子元素

时间:2015-10-14 01:06:23

标签: python xml elementtree

下面的代码,应该将subelemenet添加到给定的XML元素,给出错误:

  

xml.SubElement(新,xml.Element(self.XMLEntriesList [ 'RiverCallPower']))   TypeError:必须是xml.etree.ElementTree.Element,而不是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']))

1 个答案:

答案 0 :(得分:2)

我怀疑问题不在XMLEntriesList['RiverCallPower']部分,而在new变量None。之所以发生这种情况,是因为append()只是将新元素添加到根元素的子元素列表中,并且不会返回任何内容。试试这个:

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