Python:用Windows-1251编码解析XML

时间:2011-04-27 16:02:57

标签: python xml parsing encoding

当我尝试使用lxml解析XML时:

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

我收到以下错误:

lxml.etree.XMLSyntaxError: Unsupported encoding windows-1251

如何使用此编码从XML读取数据?

谢谢

1 个答案:

答案 0 :(得分:5)

我认为您使用的是Python 2.x版本。

如果是这样,我相信你必须使用编解码器模块的open()函数,并且这样做:

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

我认为获得的内容已经从 cp1251 解码为 Unicode ;我不确定,我不擅长Unicode操作。

如果是这样,我想,在阅读之后,etree必须能够解析Unicode中的字符串才能继续。但我也知道 etree

请注意,即使模式为'r' codecs.open()也始终以二进制模式打开文件。

希望有所帮助