我有一个(旧)工具,它不支持自闭合标签,比如<STATUS/>
。所以,我们需要将XML文件序列化为打开/关闭标签的形式,例如:<STATUS></STATUS>
。
目前我有:
>>> from lxml import etree
>>> para = """<ERROR>The status is <STATUS></STATUS>.</ERROR>"""
>>> tree = etree.XML(para)
>>> etree.tostring(tree)
'<ERROR>The status is <STATUS/>.</ERROR>'
我该如何在标签未闭合的情况下进行序列化?
<ERROR>The status is <STATUS></STATUS>.</ERROR>
解决方案
以下内容由wildwilhelm提供,如下所示:
>>> from lxml import etree
>>> para = """<ERROR>The status is <STATUS></STATUS>.</ERROR>"""
>>> tree = etree.XML(para)
>>> for status_elem in tree.xpath("//STATUS[string() = '']"):
... status_elem.text = ""
>>> etree.tostring(tree)
'<ERROR>The status is <STATUS></STATUS>.</ERROR>'