其他分享
首页 > 其他分享> > 更改lxml中etree.tostring的默认缩进

更改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