Skip to content Skip to sidebar Skip to footer

Python Return Xmlblock And Remove Encoding Tag

I am trying to edit an xml file. The file i get, where the new information is stored, looks like this:

Solution 1:

Pretty print an element only with lxml

>>>from lxml import etree>>>e1 = etree.Element("root")>>>e2 = etree.Element("child")>>>e2.text = "algo">>>e1.append(e2)>>>etree.tostring(e1,pretty_print=True)
b'<root>\n  <child>algo</child>\n</root>\n'

>>>etree.tostring(e1,pretty_print=True).decode('utf-8')
'<root>\n  <child>algo</child>\n</root>\n'

>>>print(etree.tostring(e1,pretty_print=True))
<root>
  <child>algo</child>
</root>

No XML declaration on top, just the element's content.

This creates a XML representation of the string that when printed will include the XML declaration

minidom.parseString(rough_string)

Solution 2:

@LMC

i managed to implement your suggestion, and it is giving me the output i need. But when i print it all, i only get it with the characters '\n' and not in "pretty".

I modified the function like this, i hope i interpreted your answer right.

defprettify(elem):
            pretty = ET.tostring(elem,pretty_print=True)
            return pretty

Post a Comment for "Python Return Xmlblock And Remove Encoding Tag"