Форум сайта python.su
Добрый день
пытаюсь выполнить 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
>>>
Отредактировано (Авг. 2, 2011 17:41:14)
Офлайн
“Unsupported encoding windows-1251”
Менять кодировку файла, что же ещё..
Офлайн
boltaykaвходные файлы не мои, в какой кодировке пришли - с такой и работаем
“Unsupported encoding windows-1251”
Менять кодировку файла, что же ещё..
Офлайн
очевидно дело в сборке lxml, вариант в лоб - конвертить в utf-8 руками c правкой заголовков, а потом скармливать lxml.
Отредактировано (Авг. 3, 2011 12:25:57)
Офлайн