当我尝试使用lxml解析XML时:
tree = etree.parse('xml.xml')
我收到以下错误:
lxml.etree.XMLSyntaxError: Unsupported encoding windows-1251
如何使用此编码从XML读取数据?
谢谢
答案 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()也始终以二进制模式打开文件。
希望有所帮助