使用python将xml节点添加到xml文件

时间:2010-06-04 21:01:38

标签: python xml

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

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:1)

将节点添加到XML文档的最安全方法是将其加载到DOM中,以编程方式添加节点并再次将其写出。有几个Python XML库。我使用过minidom,但我没有理由专门推荐它。