在使用“难看的” XML读取现有文件并进行一些修改后,漂亮的打印不起作用。我试过了etree.write(FILE_NAME, pretty_print=True)。
etree.write(FILE_NAME, pretty_print=True)
我有以下XML:
<testsuites tests="14" failures="0" disabled="0" errors="0" time="0.306" name="AllTests"> <testsuite name="AIR" tests="14" failures="0" disabled="0" errors="0" time="0.306"> ....
我这样使用它:
tree = etree.parse('original.xml') root = tree.getroot() ... # modifications ... with open(FILE_NAME, "w") as f: tree.write(f, pretty_print=True)
对我来说,这个问题直到我在这里注意到这个小窍门才得以解决:
http://lxml.de/FAQ.html#why-doesn-t-the-pretty-print-option-reformat-my-xml- output
简洁版本:
使用以下命令读入文件:
>>> parser = etree.XMLParser(remove_blank_text=True) >>> tree = etree.parse(filename, parser)
这将“重置”现有的缩进,从而允许输出正确生成其自身的缩进。然后照常执行pretty_print:
>>> tree.write(<output_file_name>, pretty_print=True)