我想知道通过打开文件,搜索“好地方”并添加包含 xml 代码的字符串来添加元素是否更好。
或者使用一些图书馆......我不知道。我知道如何通过例如 lxml 从 xml 获取节点和属性,但最简单和最好的添加方法是什么?

最佳答案

您可以使用 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>

关于python - 使用python将xml节点添加到xml文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2977779/

10-12 21:22