2015-10-14 43 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']))