Синтаксический анализ XML с python ElementTree: ParseError: несоответствующий тег - PullRequest
0 голосов
/ 25 января 2020

У меня есть несколько 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

1 Ответ

1 голос
/ 25 января 2020

Взгляните на строку ParseError: mismatched tag: line 449, column 3.

line 449 - это номер строки в вашем исходном файле XML. Найдите эту строку и посмотрите, что не так с содержанием. Вероятно, в этой строке содержится какой-то тег (например, закрывающий), который не имеет вступительной части.

Альтернатива: посетите любой сайт проверки XML и проверьте, что не так с вашим файлом.

...