Executing the code:
parser = ET.XMLParser(strip_cdata=False, )
tree = ET.parse(f'copy_{xml_file}', parser)
root[0].insert(0, ET.Element("type"))
root.write("test.xml", pretty_print=True)
And the element I added creates not on a new line but in front of another element, it turns out the form:
<firstTeg>327</firstTeg>
<secondTeg>1.0</secondTeg><type/>
I need to get this kind of:
<firstTeg>327</firstTeg>
<secondTeg>1.0</secondTeg>
<type/>
How do I create a new tag on a new line?
CodePudding user response:
Add
ET.indent(tree, ' ')
line before
root.write("test.xml", pretty_print=True)
Note: Feature available from Python 3.9
CodePudding user response:
parser = ET.XMLParser(strip_cdata=False, )
tree = ET.parse(f'copy_{xml_file}', parser)
new_elem = ET.Element("type")
new_elem.tail ="\n "
root[0].insert(0, new_elem)
root.write("test.xml", pretty_print=True)
output:
<firstTeg>327</firstTeg>
<secondTeg>1.0</secondTeg>
<type/>