有什么方法可以忽略 Python xml.etree.ElementTree.XMLParser 中不匹配的标签吗?
最佳答案
如果有不匹配的标签,那么您正在处理的输入就不是定义为 XML 的(因为它的格式不正确)。 ElementTree 无法“忽略”不匹配的标签。
XMLParser
lxml 库中的类有一个 recover
构造函数参数(参见 http://lxml.de/api/lxml.etree.XMLParser-class.html )。当recover=True
, lxml 将尝试修复格式错误的输入。示例:
from lxml import etree
BADINPUT = """
<root>
<foo>ABC</bar>
<baz>DEF</baz>
</root>"""
parser = etree.XMLParser(recover=True)
root = etree.fromstring(BADINPUT, parser)
print etree.tostring(root)
输出(错误的 </bar>
结束标记已更改为 </foo>
):
<root>
<foo>ABC</foo>
<baz>DEF</baz>
</root>
关于python - 忽略 xml.etree.ElementTree.XMLParser Python 中不匹配的标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40314550/