更改lxml中etree.tostring的默认缩进
作者:互联网
我有一个XML文档,正在使用lxml.etree.tostring进行漂亮的打印
print etree.tostring(doc, pretty_print=True)
缩进的默认级别是2个空格,我想将其更改为4个空格. tostring函数中对此没有任何参数.有没有办法用lxml轻松做到这一点?
解决方法:
如this thread中所述,没有真正的方法来更改lxml.etree.tostring漂亮打印的缩进.
但是你可以:
>添加XSLT变换以更改缩进
>使用cElementTree库中的内容将空白添加到树中
码:
def indent(elem, level=0):
i = "\n" + level*" "
if len(elem):
if not elem.text or not elem.text.strip():
elem.text = i + " "
if not elem.tail or not elem.tail.strip():
elem.tail = i
for elem in elem:
indent(elem, level+1)
if not elem.tail or not elem.tail.strip():
elem.tail = i
else:
if level and (not elem.tail or not elem.tail.strip()):
elem.tail = i
标签:python,pretty-print,lxml 来源: https://codeday.me/bug/20191010/1886998.html