3

I m using

Creating a simple XML file using python

and

inserting newlines in xml file generated via xml.etree.ElementTree in python

but my xml subelement has 2 spaces from left, instead of a tab, how do I switch to a tab for a subelement and not 2 spaces?

Community
  • 1
  • 1

1 Answers1

3

Set indent argument of toprettyxml() to \t:

from xml.dom import minidom
import xml.etree.cElementTree as ET

root = ET.Element("root")

doc = ET.SubElement(root, "doc")

field1 = ET.SubElement(doc, "field1")
field1.set("name", "blah")
field1.text = "some value1"

field2 = ET.SubElement(doc, "field2")
field2.set("name", "asdfasd")
field2.text = "some vlaue2"

dom = minidom.parseString(ET.tostring(root))
print dom.toprettyxml(indent='\t')

prints:

<?xml version="1.0" ?>
<root>
    <doc>
        <field1 name="blah">some value1</field1>
        <field2 name="asdfasd">some vlaue2</field2>
    </doc>
</root>
alecxe
  • 462,703
  • 120
  • 1,088
  • 1,195