如何在Python中检测和控制自闭合XML元素的创建?

2 投票
1 回答
2514 浏览
提问于 2025-04-17 15:14

也许我漏掉了什么,但我在文档中没有找到相关内容。

在使用Python的ElementTree解析XML时,怎么判断一个元素、标签或节点是否是自闭合的(也就是以/>结尾)?

在创建XML文件时,怎么明确表示我想要的是自闭合的(/>)标签,还是显式关闭的(比如</example>)标签?

如果ElementTree不支持这个功能,其他的Python解析器能处理得更好吗?

1 个回答

5

这个问题在2014年3月被Python 3.4解决了。它给所有的ElementTree序列化函数添加了一个叫做 short_empty_elements 的参数。

>>> from xml.etree import ElementTree as ET
>>> msg = ET.Element('msg',{'x': 'y'})
>>> ET.tostring(msg)
b'<msg x="y" />'
>>> ET.tostring(msg, short_empty_elements=False)
b'<msg x="y"></msg>'

撰写回答