在处理xml文件时,对于自己新增加的节点,直接write所有element都是挤在一行,和我们平时看到的有缩进、层级分明的xml文件不一样,最近找到一段小程序,专门用于格式化处理xml文件使其具有层级分明的缩进,代码如下:
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
elem为一个element 节点,如果是一个xml的root element,那么处理的就是整个xml文件,如果是一个子节点,那么就是处理的该节点以内的节点