2017-07-23 2 views
0

Ich habe Python-Skript, und ich habe bereits geschrieben Logik Schreiben xml-Datei mit xml.etree.cElementTree und der Logik aussehen wie untenWie xml-Datei mit mehreren Wurzelelementen mit ElementTree in Python

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") 

und Ausgang geben schreiben wie

<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> 

aber ich möchte mehrere Stamm hinzufügen und wie

unten setzen müssen aus
<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> 

ist es möglich, wie oben Datei schreiben mit xml.etree.cElementTree in Python

Antwort

1

Was Sie generieren möchten, ist nicht gültig Xml. Weitere Informationen finden Sie unter Do you always have to have a root node with xml/xsd?.

Sie können die Zeichenfolge auch manuell verketten.

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 
Verwandte Themen