Pretty printing XML in Python
在Python中打印xml的最佳方式(甚至是各种方式)是什么?
import xml.dom.minidom
xml = xml.dom.minidom.parse(xml_fname) # or xml.dom.minidom.parseString(xml_string)
pretty_xml_as_string = xml.toprettyxml()
lxml is recent, updated, and includes a pretty print function
import lxml.etree as etree
x = etree.parse("filename")
print etree.tostring(x, pretty_print=True)
Check out the lxml tutorial: http://lxml.de/tutorial.html
Another solution is to borrow this indent
function, for use with the ElementTree library that's built in to Python since 2.5. Here's what that would look like:
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)
链接地址: http://www.djcxy.com/p/37156.html
上一篇: 我如何关机
下一篇: 在Python中漂亮地打印XML