python - 忽略 xml.etree.ElementTree.XMLParser Python 中不匹配的标签

标签 python python-2.7 python-3.x xml-parsing elementtree

有什么方法可以忽略 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/

相关文章:

python - 将非整数成员值添加到 Python3 中的 IntEnum

python - 有没有更轻量级的方法来获取可变长度的元组?

python - 这种将线程池与 Tornado 一起使用的风格可以吗?

python - 返回相似作者的列表

python - 开始/停止 while 循环?

Python Numpy 错误 : ValueError: setting an array element with a sequence

python - 如何使用 python-libtorrent 获取 torrent 的对等列表?

python - 无法将字符串转换为 int

python - 导入错误 : No module named pxssh

python-2.7 - Python - 列表中重复项的索引