все Python 3xml.etree.ElementTreeисключение
xml.etree.ElementTree.ParseError
исключения
Исключение при разборе некорректного XML. Подкласс SyntaxError; несёт code и position — номер строки и столбца ошибки.
Синтаксис
except ET.ParseError as err: err.position, err.code
Ловите ET.ParseError, а не голый SyntaxError: последний поймает и ошибки в путях find('//x'), и это спрячет разные проблемы под одним обработчиком. position — кортеж (строка, столбец). Невалидный XML рушит разбор целиком: частично разобранного дерева fromstring() не вернёт.
Примеры
import xml.etree.ElementTree as ET
try:
ET.fromstring('<a><b></a>')
except ET.ParseError as err:
print(err) # → mismatched tag: line 1, column 8
print(err.position, isinstance(err, SyntaxError)) # → (1, 8) True
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности