gpt4 book ai didi

python - lxml:tostring 中的 Pretty_print 选项在换行符号后无法正常工作

转载 作者:行者123 更新时间:2023-12-01 04:02:12 29 4
gpt4 key购买 nike

符号“\n”之后的 Pretty_print 被忽略。例如:

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)

输出是:

<root>
<e1/><e2/></root>

<root>
<e1/>
<e2/>
</root>

两个字符串都是有效的 xml。第一个字符串包含符号“\n”,此符号后的 Pretty_print 将被忽略。

这是 lxml 错误还是我需要特殊操作来实现漂亮的格式设置?

最佳答案

谢谢你,科利

此行为的原因解释如下: 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)

# or for Python 3.x
print(etree.tostring(xml, pretty_print=True).decode())
# here I assume utf-8 encoding

关于python - lxml:tostring 中的 Pretty_print 选项在换行符号后无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36283801/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com