为cElementTree指定换行符

时间:2012-10-19 13:20:56

标签: python xml newline celementtree

代码

我正在用cElementTree编写一个xml文件,如下所示:

cElementTree.ElementTree(xml_tree]).write(xmlPath, encoding="ISO-8859-1", xml_declaration=True)  

实际结果

这将提供以下文件(在Windows上):

<?xml version='1.0' encoding='iso-8859-1'?><tag1 = "1"></tag1>

因此缺少新行。

我尝试手动添加适当的windows换行符\r\n',现在我明白了:

<?xml version='1.0' encoding='iso-8859-1'?><tag1 = "1">
</tag1>

期望的结果

但是,我想在每一行后面都有正确的换行符,这样我的输出应该是这样的:

<?xml version='1.0' encoding='iso-8859-1'?>
<tag1 = "1">
</tag1>

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:2)

lxml支持漂亮打印,cElementTree不支持。

from lxml import etree
xml_str = "<parent><child>text</child><child>other text</child></parent>"
root = etree.fromstring(xml_str)
print etree.tostring(root, pretty_print=True)

请参阅Python pretty XML printer for XML stringPretty printing XML in Python