python etree 插入、附加和子元素

python etree insert, append and SubElement

我想在 Python 中创建这样的元素树:

<parent>
  <child/>
  <child/>
  <child/>
</parent>

我想将它用作我以后可以使用的空模板。但是,我无法将多个 <child> 元素插入或附加到 <parent> 元素,尽管 etree.SubElement 有效。更具体地说:

这会产生 <parent><child/></parent>,即只插入了一个 <child>

root = etree.Element('root')
child = etree.Element('child')
for i in range(3):
  root.insert(0,child)

这也不起作用并产生与上面相同的结果:

root = etree.Element('root')
child = etree.Element('child')
for i in range(3):
  root.append(child)

这个有效:

root = etree.Element('root')
for i in range(3):
  etree.SubElement('child')

我不明白为什么我不能多次插入或追加一个元素。

我猜你需要创建新的元素对象将它们追加到根,否则你追加两次是同一个元素,没有效果:

root = etree.Element('root')

for i in range(3):
    child = etree.Element('child')
    root.append(child)

希望对您有所帮助。