使用 python ElementTree 解析 XML:ParseError:标签不匹配

Lev*_*sen 3 python xml parsing elementtree xml-parsing

我有几个必须使用 python ElemetTree 解析的 XML 文件(它们是其他开发人员遗留下来的)。

到目前为止,我已经稍微纠正了这些文件并解析了很大一部分,但在某个时刻我遇到了这个解析错误,并且我无法解决它。尝试解析原始文件(当然我正在使用副本),尽管它一开始工作得很好,但它仍然是相同的错误。

错误: ParseError: mismatched tag

我的代码是:

import xml.etree.ElementTree as ET
tree = ET.parse('astrod.xml')
Run Code Online (Sandbox Code Playgroud)

完整错误文本:

Traceback (most recent call last):

  File "D:\dev\tools\Anaconda\lib\site-packages\IPython\core\interactiveshell.py", line 3326, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)

  File "<ipython-input-4-6aa074179306>", line 2, in <module>
    tree = ET.parse('astrod.xml')

  File "D:\dev\tools\Anaconda\lib\xml\etree\ElementTree.py", line 1197, in parse
    tree.parse(source, parser)

  File "D:\dev\tools\Anaconda\lib\xml\etree\ElementTree.py", line 598, in parse
    self._root = parser._parse_whole(source)

  File "<string>", line unknown
ParseError: mismatched tag: line 449, column 3
Run Code Online (Sandbox Code Playgroud)

Val*_*_Bo 5

看看线ParseError: mismatched tag: line 449, column 3

line 449是源 XML 文件中的行号。找到这一行,看看内容有什么问题。也许这一行包含一些没有开放对应部分的标签(例如关闭)。

另一种方法:访问任何 XML 验证站点并检查您的文件有什么问题。