【问题标题】:How to write xml file with multiple root element using ElementTree in python如何在python中使用ElementTree编写具有多个根元素的xml文件
【发布时间】:2017-07-23 13:34:27
【问题描述】:

我有 python 脚本,我已经编写了使用 xml.etree.cElementTree 编写 xml 文件的逻辑,逻辑如下所示

import xml.etree.cElementTree as ET

root = ET.Element("root")
for I in range(0,10):
    ET.SubElement(root, "field1").text = "some value1"
    ET.SubElement(root, "field2").text = "some vlaue2"

tree = ET.ElementTree(root)
tree.write("filename.xml")

它给出像

这样的输出
<root>
      <field1>some value1</field1>
      <field2>some value2</field2>
      <field1>some value1</field1>
      <field2>some value2</field2>
      <field1>some value1</field1>
      <field2>some value2</field2>
      <field1>some value1</field1>
      <field2>some value2</field2>......
</root>

但我想添加多个根,需要像下面这样输出

<root>
  <field1>some value1</field1>
  <field2>some value2</field2>
</root>
<root>
  <field1>some value1</field1>
  <field2>some value2</field2>
</root>
<root>
  <field1>some value1</field1>
  <field2>some value2</field2>
</root>
<root>
  <field1>some value1</field1>
  <field2>some value2</field2>
</root>

是否可以在 python 中使用xml.etree.cElementTree 编写上述文件

【问题讨论】:

    标签: python xml elementtree


    【解决方案1】:

    您要生成的不是有效的 xml。 请参阅Do you always have to have a root node with xml/xsd? 了解更多信息。

    您也可以随时手动连接字符串。

    import xml.etree.cElementTree as ET
    result= ''
    for I in range(0, 10):
        root = ET.Element("root")
        ET.SubElement(root, "field1").text = "some value1"
        ET.SubElement(root, "field2").text = "some vlaue2"
        result += ET.tostring(root)
    print(result) # or write the result to a file
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-18
      • 1970-01-01
      • 1970-01-01
      • 2012-02-07
      • 2013-02-17
      • 1970-01-01
      • 2014-03-23
      • 1970-01-01
      相关资源
      最近更新 更多