Чтение XML с использованием другой кодировки с использованием Python Mindom

Я написал скрипт для чтения XML-файлов с использованием minidom:

from xml.dom.minidom import parse
for File in Data['FileList']:
    Xml = parse(File)
#do something

который работает нормально, но некоторые парни создают XML, определяющие кодировку UTF-8 в XML и использующие Umlaute в тегах, поэтому я наткнулся на xml.parsers.expat.ExpatError: не правильно сформирован (неверный токен).

Если я вручную изменяю в XML на encoding="ISO-8859-1", он работает нормально.

Существует ли более элегантный способ изменить кодировку вместо редактирования файлов XML, например, сказать minidom, что нужно использовать кодировку, отличную от определенной в XML?

1 ответ

Решение

Я предлагаю вам это решение:

Перед синтаксическим анализом файла откройте его как обычно и замените первую строку, соответствующую заголовку XML, на следующую строку:

<?xml version="1.0" encoding="ISO-8859-1"?>

Затем сохраните файл и вставьте его в minidom.parse() функция.

Это может помочь вам заменить первую строку строки в каждом файле: Поиск и замена строки в файле в Python

Другие вопросы по тегам