Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 2, 2011 17:36:54

Timo
От:
Зарегистрирован: 2011-08-02
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

lxml, кодировки и Windows7

Добрый день
пытаюсь выполнить xslt transform при помощи библиотеки lxml. Проблемы уже при парсинге исходного xml файла

(OS Windows7 x64, Python 2.7.2 x64, lxml-2.3.win-amd64-py2.7):

>>> f=open(r"d:/temp/test.xml", "r")
>>> buf=f.read()
>>> buf[:47]
'<?xml version="1.0" encoding="windows-1251"?>\n<'
>>> from lxml import etree
>>> root = etree.fromstring(buf)

Traceback (most recent call last):
File "<pyshell#7>", line 1, in <module>
root = etree.fromstring(buf)
File "lxml.etree.pyx", line 2743, in lxml.etree.fromstring (src/lxml/lxml.etree.c:52665)
File "parser.pxi", line 1573, in lxml.etree._parseMemoryDocument (src/lxml/lxml.etree.c:79932)
File "parser.pxi", line 1452, in lxml.etree._parseDoc (src/lxml/lxml.etree.c:78774)
File "parser.pxi", line 960, in lxml.etree._BaseParser._parseDoc (src/lxml/lxml.etree.c:75389)
File "parser.pxi", line 564, in lxml.etree._ParserContext._handleParseResultDoc (src/lxml/lxml.etree.c:71739)
File "parser.pxi", line 645, in lxml.etree._handleParseResult (src/lxml/lxml.etree.c:72614)
File "parser.pxi", line 585, in lxml.etree._raiseParseError (src/lxml/lxml.etree.c:71955)
XMLSyntaxError: Unsupported encoding windows-1251, line 1, column 42
>>>
причем тот же код под Xubuntu 11.04 x64 выплнятся на ура
что-делать-то?

PS тот же файлик, ручками преобразованный в UTF-8, парсится без ошибок



Отредактировано (Авг. 2, 2011 17:41:14)

Офлайн

#2 Авг. 3, 2011 00:06:45

boltayka
От:
Зарегистрирован: 2009-10-07
Сообщения: 68
Репутация: +  0  -
Профиль   Отправить e-mail  

lxml, кодировки и Windows7

“Unsupported encoding windows-1251”
Менять кодировку файла, что же ещё..

Офлайн

#3 Авг. 3, 2011 07:46:23

Timo
От:
Зарегистрирован: 2011-08-02
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

lxml, кодировки и Windows7

boltayka
“Unsupported encoding windows-1251”
Менять кодировку файла, что же ещё..
входные файлы не мои, в какой кодировке пришли - с такой и работаем

повторюсь:
тот же код под Xubuntu 11.04 x64 выплнятся на ура
т.е. библиотека lxml способна сама разобраться с кодировкой.
проблема вероятно в версии для windows x64



Офлайн

#4 Авг. 3, 2011 12:25:12

truporez
От:
Зарегистрирован: 2009-05-08
Сообщения: 266
Репутация: +  6  -
Профиль   Адрес электронной почты  

lxml, кодировки и Windows7

очевидно дело в сборке lxml, вариант в лоб - конвертить в utf-8 руками c правкой заголовков, а потом скармливать lxml.



Отредактировано (Авг. 3, 2011 12:25:57)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version