python etree insert,append和SubElement

时间:2016-06-01 15:17:26

标签: python xml lxml elementtree

我想在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')

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

1 个答案:

答案 0 :(得分:2)

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

root = etree.Element('root')

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

希望这有帮助。

相关问题