如何使用 python 中的 ElementTree 编写具有多个根元素的 xml 文件
How to write xml file with multiple root element using ElementTree in python
我有 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
像上面的文件一样编写
您要生成的内容无效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
我有 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
像上面的文件一样编写
您要生成的内容无效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