当我尝试使用 Python XML 库解析 XML 时,出现以下错误。
xml.etree.ElementTree.ParseError: unclosed token
我正在使用以下代码来解析 xml 字符串。
from xml.etree import ElementTree as ET
try:
root = ET.fromstring(xml_string)
emp = root.findall(".//employees")
.... further process with emp........
exception:
pass
即使存在无效的 XML 字符串,我也想继续。我正在从数据帧列传递此 XML 字符串。
任何人都可以建议我们如何在解析 xml 字符串时避免此错误,或者我们如何纠正 xml,比如 lxml 在解析 xml 时有一些恢复选项(一种想法是使用 lxml,通过使用恢复选项纠正丢失的 xml 标签并使用 Python XML 库)用于解析 XML 字符串,但我不确定我们如何实现它)。
请建议我们如何处理,非常感谢您的帮助。
即使存在无效的 xml 字符串我也想继续
这不是 XML 的工作方式。 HTML 解析器会尽力修复损坏的数据并理解它。 XML 解析器在设计上拒绝不良数据,而不是试图猜测它的含义。
正如您所提到的,有些工具会在将错误的 XML 提交给 XML 解析器之前尝试修复它。但实际上,同意以 XML 形式交换数据的全部意义在于,只有双方都使用真正的 XML 而不是某种未定义的近似值时,您才能获得好处。