xml.etree.ElementTree.ParseError:XML 库未关闭令牌

问题描述 投票:0回答:1

当我尝试使用 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 字符串,但我不确定我们如何实现它)。

请建议我们如何处理,非常感谢您的帮助。

python xml apache-spark pyspark lxml
1个回答
0
投票

即使存在无效的 xml 字符串我也想继续

这不是 XML 的工作方式。 HTML 解析器会尽力修复损坏的数据并理解它。 XML 解析器在设计上拒绝不良数据,而不是试图猜测它的含义。

正如您所提到的,有些工具会在将错误的 XML 提交给 XML 解析器之前尝试修复它。但实际上,同意以 XML 形式交换数据的全部意义在于,只有双方都使用真正的 XML 而不是某种未定义的近似值时,您才能获得好处。

© www.soinside.com 2019 - 2024. All rights reserved.