【问题标题】:python etree insert, append and SubElementpython etree插入、追加和子元素
【发布时间】:2016-06-01 15:17:25
【问题描述】:

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

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

我想将其用作稍后可以处理的空模板。但是,我无法将多个 &lt;child&gt; 元素插入或附加到 &lt;parent&gt; 元素,尽管 etree.SubElement 有效。具体来说:

这会产生&lt;parent&gt;&lt;child/&gt;&lt;/parent&gt;,即只插入了一个&lt;child&gt;

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')

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

【问题讨论】:

  • 您在第一个示例中每次都使用相同的对象

标签: python xml lxml elementtree


【解决方案1】:

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

root = etree.Element('root')

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

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-07
    • 2011-12-08
    • 1970-01-01
    • 2015-11-07
    • 2014-03-13
    • 2015-02-04
    • 1970-01-01
    相关资源
    最近更新 更多