from xml.etree import ElementTree
def indent(elem, level=0):
i = "\n" + level*" "
j = "\n" + (level-1)*" "
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 subelem in elem:
indent(subelem, level+1)
if not elem.tail or not elem.tail.strip():
elem.tail = j
else:
if level and (not elem.tail or not elem.tail.strip()):
elem.tail = j
return elem
root = ElementTree.parse('/tmp/xmlfile').getroot()
indent(root)
ElementTree.dump(root)
另一个解决方案是借用this ^{} function ,用于自2.5以来内置到Python中的ElementTree库。
下面是它的样子:
lxml是最近更新的,包含了一个漂亮的打印功能
查看lxml教程: http://lxml.de/tutorial.html
相关问题 更多 >
编程相关推荐