python etree 插入、追加和子元素

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

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

最佳答案

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

root = etree.Element('root')

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

希望这有帮助。

关于python etree 插入、追加和子元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37572695/

相关文章:

python - 通过 Python 在 Mac 上使用蓝牙

python - 使用python登录网站

python - 使用 BeautifulSoup 提取相似的 XML 属性

android - 为什么我在 Android 上的 XML 文件被截断为 1000 字节

Python XML 解析和 getElementsByTagName

python - 使用python在xml文件中使用循环修改元素文本

python - 如果 Python 3 是最新的 python,为什么 python 2 仍然存在?

asp.net - 将静态数据存储在数据库或文件系统中

Python BeautifulSoup 相当于 lxml make_links_absolute

python - 为什么Python 3.4.3使用lxml不能正确输出打印语句?