将 XML 从字符串解析为元素

parsing XML from a string into an element

我在将 XML 从字符串直接解析为元素时遇到了一些麻烦。 我有一个 xml 文件,我已将其转换为字符串:

resp = requests.post(request_url, request_string,   proxies=urllib.getproxies(), stream=True)

并且按照此处的建议:,我使用了内容而不是文本:

response_tree = ET.fromstring(resp.content)

我显然在 XML 文件中有一个语法错误:

XMLSyntaxError: Input is not proper UTF-8, indicate encoding !
Bytes: 0xB0 0x20 0x4E 0x6F, line 12, column 35

我试过这个来编码内容但没有成功:

ET.fromstring(resp.content.encode('utf8'))

我遇到了与以前相同的 XMLSYntaxError。 谁能帮我? 我已经在这上面花了两个小时了。

我终于找到了一个很棒的库来帮助我解决问题:cchardet(https://pypi.python.org/pypi/cchardet/0.3.5) 我听从了@deets 的建议。

import cchardet
charac_coding_desired = 'UTF-8'
encoding = cchardet.detect(resp.content)['encoding']
if charac_coding_desired != encoding:
    strg= resp.content.decode(encoding, resp.content).encode(charac_coding_desired)

现在我可以粗暴地解析字符串了:

ET.fromstring(strg)

还是谢谢!!!