2015-10-14 47 views
1

下面的代码,它应该在subelemenet添加到给定的XML元素,给人的错误:添加子元素与ElementTree的

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'])) 

回答

2

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

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