下面的代码,应该将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']))
答案 0 :(得分:2)
我怀疑问题不在XMLEntriesList['RiverCallPower']
部分,而在new
变量None
。之所以发生这种情况,是因为append()
只是将新元素添加到根元素的子元素列表中,并且不会返回任何内容。试试这个:
.......
new = xml.Element('newElement')
self.root.append(new)
xml.SubElement(new,xml.Element(self.XMLEntriesList['RiverCallPower']))