Python: анализ XML в кодировке Windows-1251 - PullRequest
5 голосов
/ 27 апреля 2011

Когда я пытаюсь проанализировать XML с помощью lxml следующим образом:

tree = etree.parse('xml.xml')

я получаю следующую ошибку:

lxml.etree.XMLSyntaxError: Unsupported encoding windows-1251

Как я могу прочитать данные из XML с помощью этой кодировки?

Спасибо

1 Ответ

5 голосов
/ 27 апреля 2011

Я думаю, что вы используете версию Python 2.x.

Если это так, я считаю, что вы должны использовать функцию open () модуля кодеков и сделать:

import codecs
with codecs.open(filename,'rb','cp1251') as f:
    content = f.read()
    tree = etree.parse(content)

Я думаю, что полученный контент был декодирован с cp1251 до Unicode ; Я не уверен, я не разбираюсь в манипуляциях с Юникодом.

Если это так, я полагаю, что после чтения etree должна иметь возможность проанализировать строку в Unicode, чтобы продолжить. Но я тоже немного знаю этри .

Обратите внимание, что даже если режим был 'r' , codecs.open () всегда открывает файл в двоичном режиме.

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...