我正在尝试使用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));
答案 0 :(得分:2)
问题似乎是ElementTree
库不支持漂亮打印。正如here所解释的那样,解决方法是从另一个库中的ElementTree
重新分析输出字符串,该库提供对漂亮打印的支持。
答案 1 :(得分:1)
您是否查看了StackOverflow中的this post?我认为它涵盖了你想要的东西:
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。