toprettyxml() не работает при обратной записи в xml-файл

Я использовал python для изменения файла XML и хочу записать изменения в XML обратно в файл в красивой форме, я использую этот код, чтобы написать, что я использую from xml.dom.minidom import parse, parseString

dom1 = parse("./test.xml")

f.write(dom1.toprettyxml(indent="\t", newl="\n", encoding="utf-8"))

после выполнения этого кода он добавляет несколько новых строк, я думаю, что он добавляет новую строку после того, как новая строка уже присутствует в XML, поскольку файл уже был отформатирован перед чтением

как написать XML красиво из python?


person rahul Kushwaha    schedule 22.01.2020    source источник


Ответы (1)


Вы можете использовать minidom :

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

xmlstr = xml.dom.minidom.parseString(ET.tostring(dom1)).toprettyxml(indent="   ")
with open("pretty.xml", "bw") as f:
    f.write(xmlstr.encode('utf-8'))
person CC7052    schedule 30.01.2020