topretty xml () не работает при записи обратно в файл xml - PullRequest
0 голосов
/ 22 января 2020

Я использовал 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?

1 Ответ

1 голос
/ 31 января 2020

Вы можете использовать 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'))
...