符号' \ n' pretty_print被忽略。 例如:
i
输出是:
import lxml.etree as etree
strs = ["<root>\n<e1/><e2/></root>",
"<root><e1/><e2/></root>"]
for str in strs:
xml = etree.fromstring(str)
print etree.tostring(xml, pretty_print=True)
两个字符串都是有效的xml。 第一个字符串有符号&#39; \ n&#39;此符号后将忽略pretty_print。
它和lxml错误还是我需要特殊的操作来进行漂亮的格式化?
答案 0 :(得分:1)
谢谢你,Corley
此处解释了此行为的原因: http://lxml.de/FAQ.html#why-doesn-t-the-pretty-print-option-reformat-my-xml-output
正确的代码是:
import lxml.etree as etree
strs = ["<root>\n<e1/><e2/></root>",
"<root><e1/><e2/></root>"]
parser = etree.XMLParser(remove_blank_text=True)
for str in strs:
xml = etree.fromstring(str, parser=parser)
print etree.tostring(xml, pretty_print=True)