如何在Python中检测和控制自闭合XML元素的创建?
也许我漏掉了什么,但我在文档中没有找到相关内容。
在使用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>'