我想知道是通过打开文件,搜索“好的位置”,并添加包含XML代码的字符串来添加元素更好?还是使用某些库……我不知道。我知道如何通过lxml等工具从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>
向 XML 文档添加节点的最安全方法是将其加载到 DOM 中,以编程方式添加节点,然后再次写出。有几个 Python XML 库可供使用。我已经使用了 minidom,但我没有理由特别推荐它而不是其他库。