чтение XML с использованием другой кодировки с использованием Python Mindom - PullRequest
0 голосов
/ 29 мая 2018

Я написал скрипт для чтения 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 на кодировку = "ISO-8859-1", он работает нормально.

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

1 Ответ

0 голосов
/ 05 июня 2018

Я предлагаю вам следующее решение:

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

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

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

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

...