使用Python向XML文件中添加XML节点

4

我想知道是通过打开文件,搜索“好的位置”,并添加包含XML代码的字符串来添加元素更好?还是使用某些库……我不知道。我知道如何通过lxml等工具从XML中获取节点和属性,但是添加元素最简单和最好的方法是什么呢?

2个回答

4
你可以使用 lxml.etree.Element 来创建 XML 节点,然后使用 appendinsert 将它们添加到 XML 文档中:
data='''\
<root>
<node1>
  <node2 a1="x1"> ... </node2>
  <node2 a1="x2"> ... </node2>
  <node2 a1="x1"> ... </node2>
</node1>
</root>
'''
doc = lxml.etree.XML(data)
e=doc.find('node1')
child = lxml.etree.Element("node3",attrib={'a1':'x3'})
child.text='...'
e.insert(1,child)
print(lxml.etree.tostring(doc))

产生:

<root>
    <node1>
      <node2 a1="x1"> ... </node2>
      <node3 a1="x3">...</node3><node2 a1="x2"> ... </node2>
      <node2 a1="x1"> ... </node2>
    </node1>
    </root>

谢谢,lxml非常简单明了。 - matiit

1

向 XML 文档添加节点的最安全方法是将其加载到 DOM 中,以编程方式添加节点,然后再次写出。有几个 Python XML 库可供使用。我已经使用了 minidom,但我没有理由特别推荐它而不是其他库。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接