更改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 lxml和Iterparse解析大型XML文件


下一篇:在python 3中解码base64字符串(是否带有lxml)