Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python将xml节点添加到xml文件_Python_Xml - Fatal编程技术网

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

使用python将xml节点添加到xml文件,python,xml,Python,Xml,我想知道是否最好通过打开文件、搜索“good place”并添加包含xml代码的字符串来添加元素。 或者使用一些图书馆。。。我不知道。我知道如何通过例如lxml从xml获取节点和属性,但最简单和最好的添加方式是什么 将节点添加到XML文档中最安全的方法是将其加载到DOM中,以编程方式添加节点,然后再次将其写出。有几个pythonxml库。我使用过minidom,但我没有理由特别推荐它 您可以使用创建xml节点,并使用或将其附加到xml文档中: data='''\ <root> <

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

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

您可以使用创建xml节点,并使用或将其附加到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))
data=''\
... 
... 
... 
'''
doc=lxml.etree.XML(数据)
e=文件查找('node1')
child=lxml.etree.Element(“node3”,attrib={'a1':'x3'})
child.text=“…”
e、 插入(1,子项)
打印(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非常简单明了。