[英]Append new node into XML using python
我已经编写了以下代码来创建中等大小的XML文件,其中将在循环中创建节点。
import xml.etree.cElementTree as ET
number = 0
def xml_write(number,doc):
ET.SubElement(doc, "extra-TextID", used="true").text = ""+str(number) ##in each loop number will be changed from 0 to 9
while number != 10:
doc = ET.Element("message")
xml_write(number,doc)
tree = ET.ElementTree(doc)
tree.write('XML_file.xml')
number = number + 1
但是运行上面的代码,我只能得到最后一个节点,即最后一行中有“ 9”。 文件中的数据将被替换。 如何附加它,这样我将获得每个节点中包含0到9的所有节点。
<?xml version="1.0"?>
-<message>
<source>Rain</source>
<translations language="Dev">Cyclone</translations>
<extra-TextID used="true">9</extra-TextID>
<message>
我需要获取xml文件为:
<?xml version="1.0"?>
-<message>
<source>Rain</source>
<translations language="Dev">Cyclone</translations>
<extra-TextID used="true">0</extra-TextID>
<message>
<?xml version="1.0"?>
-<message>
<source>Rain</source>
<translations language="Dev">Cyclone</translations>
<extra-TextID used="true">1</extra-TextID>
<message>
<?xml version="1.0"?>
-<message>
<source>Rain</source>
<translations language="Dev">Cyclone</translations>
<extra-TextID used="true">3</extra-TextID>
<message>
.
.
.
<?xml version="1.0"?>
-<message>
<source>Rain</source>
<translations language="Dev">Cyclone</translations>
<extra-TextID used="true">9</extra-TextID>
<message>
ElementTree库不会转储具有多个根元素的XML 。 如果要在XML文件中具有此类输出,请手动附加生成的元素:
with open('XML_file.xml', 'wb') as f:
while number != 10:
doc = ET.Element("message")
xml_write(number, doc)
f.write(ET.tostring(doc, method="xml"))
number += 1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.