<MAINTAG><TAG1></TAG1></MAINTAG>
А хочу так:
<MAINTAG> <TAG1> </TAG1> </MAINTAG>
Какая команда или параметр за это ответственны? И умеет ли, вообще, lxml так делать?
<MAINTAG><TAG1></TAG1></MAINTAG>
<MAINTAG> <TAG1> </TAG1> </MAINTAG>
outFile = open('test.xml', 'w') doc.write(outFile, pretty_print=True)
root = etree.Element("ROOT") doc = etree.ElementTree(root) xmldeclaration = etree.tostring(root, encoding = "Windows-1251", standalone = "Yes") outfile = open(fullPathName, 'wb') outfile.write(xmldeclaration) outfile.close()
xmldeclaration = etree.tostring(root, encoding = "Windows-1251", standalone = "Yes", pretty_print = True)
import xml.dom.minidom xml = xml.dom.minidom.parseString("<MAINTAG><TAG1></TAG1></MAINTAG>") with open("asxcas.xml", 'wb') as outfile: outfile.write(xml.toprettyxml())
PlutoКрасивое решение дано выше.
Блин, мне нужен “красивый” xml
>>> import lxml.etree >>> >>> def f(s): ... return lxml.etree.tostring( ... lxml.etree.fromstring(s), ... pretty_print=True, ... encoding='unicode') ... >>> s = '<MAINTAG><TAG1><TAG11>text11</TAG11></TAG1>' \ ... '<TAG2><TAG21>text21</TAG21></TAG2></MAINTAG>' >>> >>> print(f(s)) <MAINTAG> <TAG1> <TAG11>text11</TAG11> </TAG1> <TAG2> <TAG21>text21</TAG21> </TAG2> </MAINTAG> >>>
PlutoКстати, несложно написать функцию, которая сама форматирует XML так, как надо. (Иногда pretty_print делает не то.)
А хочу так: