我有一个 XML 文档,我正在使用它进行漂亮的打印lxml.etree.tostring
print etree.tostring(doc, pretty_print=True)
默认缩进级别是 2 个空格,我想将其更改为 4 个空格。函数中没有任何参数tostring
;有没有办法用lxml轻松做到这一点?
我有一个 XML 文档,我正在使用它进行漂亮的打印lxml.etree.tostring
print etree.tostring(doc, pretty_print=True)
默认缩进级别是 2 个空格,我想将其更改为 4 个空格。函数中没有任何参数tostring
;有没有办法用lxml轻松做到这一点?
从 4.5 版本开始,您可以使用函数设置缩进大小。indent()
etree.indent(root, space=" ")
print(etree.tostring(root))
正如在这个线程中所说,没有真正的方法可以改变lxml.etree.tostring
漂亮打印的缩进。
但是你可以:
代码:
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