На python исправить некорректный xml
Допустим, есть файл xml с некорректной структурой (незакрытые теги, теги без одной угловой скобки и так далее). Как на python его исправить?
Допустим, есть файл xml с некорректной структурой (незакрытые теги, теги без одной угловой скобки и так далее). Как на python его исправить?
Никак.
Формат XML, в отличие от HTML, является строгим и не допускает никаких ошибок. Парсер, соответствующий стандартам, должен останавливать обработку при первой встреченной ошибке и не пытаться ничего исправить.
Парсер XML, поставляемый с Python, этим требованиям соответствует, поэтому не включает обработку ошибок.
Браузеры, если потребовать от них обработку страницы как XHTML (как HTML, только в строгом соответствии XML), при нахождении ошибки в тексте могут попытаться обработать XHTML как HTML. Можете пойти тем же путём, например, воспользоваться BeautifulSoup.
"Исправление" ошибок при чтении XML крайне не рекомендуется. Оно уже привело ко всевозможным проблемам для HTML, в результате пришлось в новый стандарт включать уйму маловменяемой логики, чтобы хоть как-то привести браузеры к общему знаменателю. В случае XML авторы стандарта поступили проще и правильнее: если в файле XML ошибка, то это проблема того, кто этот файл сгенерировал, а не того, кто этот файл пытается прочитать.