首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用python将新节点添加到XML中

使用python将新节点添加到XML中
EN

Stack Overflow用户
提问于 2017-01-09 14:13:32
回答 1查看 148关注 0票数 0

我编写了下面的代码来创建中等大小的XML文件,其中我将在循环中创建节点。

代码语言:javascript
复制
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的所有节点。

代码语言:javascript
复制
    <?xml version="1.0"?>
    -<message>
       <source>Rain</source>
       <translations language="Dev">Cyclone</translations>
       <extra-TextID used="true">9</extra-TextID>
     <message>

我需要获得xml文件,如:

代码语言:javascript
复制
    <?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>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-09 14:25:35

ElementTree库不会转储包含多个根元素的XML。如果您希望XML文件中有这种类型的输出,请手动追加生成的元素:

代码语言:javascript
复制
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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41549911

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档