etree.tostring()xml python中的pretty_print

时间:2012-03-07 23:04:59

标签: python xml pretty-print

我正在尝试使用pretty_print选项打印出xml doc。但这是一个错误

TypeError:tostring()得到了一个意外的关键字参数' pretty_print'

我在这里错过了什么吗?

def CreateXML2():
    Date = etree.Element("Date", value=time.strftime(time_format, time.localtime()));
    UserNode = etree.SubElement(Date, "User");
    IDNode = etree.SubElement(UserNode, "ID");
    print(etree.tostring(Date, pretty_print=True));

2 个答案:

答案 0 :(得分:2)

问题似乎是ElementTree库不支持漂亮打印。正如here所解释的那样,解决方法是从另一个库中的ElementTree重新分析输出字符串,该库提供对漂亮打印的支持。

答案 1 :(得分:1)

您是否查看了StackOverflow中的this post?我认为它涵盖了你想要的东西:

就地prettyprint格式化程序

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

该示例代码来自帖子和effbot.org

另外,有关其他信息,请不要正确调用tostring()方法。有关详细信息,请查看Python's website