我想知道通过打开文件添加元素是否更好,搜索“好地方”并添加包含xml代码的字符串。 或者使用一些图书馆...我不知道。我知道如何从xml获取节点和属性,例如lxml但是最简单和最好的添加方式是什么?
答案 0 :(得分:4)
您可以使用lxml.etree.Element创建xml节点,并使用append或insert将它们附加到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>
答案 1 :(得分:1)
将节点添加到XML文档的最安全方法是将其加载到DOM中,以编程方式添加节点并再次将其写出。有几个Python XML库。我使用过minidom,但我没有理由专门推荐它。