Parsing XML with python ElementTree: ParseError: mismatched tag
Parsing XML with python ElementTree: ParseError: mismatched tag
我有几个 XML 文件必须用 python ElemetTree 解析(它们是另一位开发人员遗留的)。
到目前为止,我已经稍微更正了这些文件并解析了一个很好的块,但在某些时候我遇到了这个解析错误,我无法解决这个问题。尝试解析原始文件(我正在使用当然的副本),但它仍然是相同的错误,即使它最初工作正常。
错误:
ParseError: mismatched tag
我的代码是:
import xml.etree.ElementTree as ET
tree = ET.parse('astrod.xml')
完整的错误文本:
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
查看行 ParseError: mismatched tag: line 449, column 3
。
line 449
是源 XML 文件中的行号。
找到这一行,看看内容有什么问题。
可能这一行包含一些标签(例如关闭),但没有
开幕式.
另一种方法:访问任何 XML 验证站点并检查哪里出了问题
用你的文件。
我发现有时您会在比实际错误晚很多的行号处收到此错误。当您关闭未正确打开的标签时,它只会注意到错误。查看文件前面的内容。
例如,我遇到了类似的问题,错误消息声称
xml.etree.ElementTree.ParseError: mismatched tag: line 12, column 2
但错误不在上述行,我在开头拼错了一个标签。
通过您的输入向后检查出现此错误的开始标记。
我有几个 XML 文件必须用 python ElemetTree 解析(它们是另一位开发人员遗留的)。
到目前为止,我已经稍微更正了这些文件并解析了一个很好的块,但在某些时候我遇到了这个解析错误,我无法解决这个问题。尝试解析原始文件(我正在使用当然的副本),但它仍然是相同的错误,即使它最初工作正常。
错误:
ParseError: mismatched tag
我的代码是:
import xml.etree.ElementTree as ET
tree = ET.parse('astrod.xml')
完整的错误文本:
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
查看行 ParseError: mismatched tag: line 449, column 3
。
line 449
是源 XML 文件中的行号。
找到这一行,看看内容有什么问题。
可能这一行包含一些标签(例如关闭),但没有
开幕式.
另一种方法:访问任何 XML 验证站点并检查哪里出了问题 用你的文件。
我发现有时您会在比实际错误晚很多的行号处收到此错误。当您关闭未正确打开的标签时,它只会注意到错误。查看文件前面的内容。
例如,我遇到了类似的问题,错误消息声称
xml.etree.ElementTree.ParseError: mismatched tag: line 12, column 2
但错误不在上述行,我在开头拼错了一个标签。
通过您的输入向后检查出现此错误的开始标记。