2

我正在使用 pythonxml.etree.ElementTree来表示 XML 文档。我想将它输出为文本,但我想保持空元素(没有子元素的元素)展开,而不是折叠。例如,我想要这个:

<element></element>

而不是这个:

<element />

我目前正在使用ElementTree.tostring,但我愿意使用任何其他内置的 python 模块或函数来序列化文档,只要我可以很容易地使用 ElementTree 对象。

仅供参考,我想保持元素扩展的原因是因为我想更容易地将输出与来自不会折叠空元素的第三方程序的输出进行比较。

4

2 回答 2

6

你可以传递method="html"tostring()调用。

演示:

>>> import xml.etree.ElementTree as etree
>>> data = """
... <root>
...     <person/>
...     <person></person>
... </root>
... """
>>> tree = etree.fromstring(data)
>>> print etree.tostring(tree, method="html")
<root>
    <person></person>
    <person></person>
</root>
于 2014-05-05T14:37:04.437 回答
4

只需使用:ElementTree.tostring(element, short_empty_elements=False)

于 2015-10-24T18:04:50.937 回答