使用 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']))
下面的代码应该向给定的 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']))