不要折叠XML输出中的空节点

bri*_*rns 2 python xml xml.etree

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

<element></element>
Run Code Online (Sandbox Code Playgroud)

而不是这个:

<element />
Run Code Online (Sandbox Code Playgroud)

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

仅供参考,我想保持元素扩展的原因是因为我想更容易地将输出与第三方程序的输出区分开来,第三方程序不会折叠空元素.

ale*_*cxe 5

你可以传递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>
Run Code Online (Sandbox Code Playgroud)