Ali*_*aca 3 python xml lxml utf-8 utf-16
lxml.etree.XMLSyntaxError,文档标记为 UTF-16 但具有 UTF-8 内容
我在 python 中使用 lxml lib 时收到错误。其他解决方案/黑客正在将文件 php.ini 中的 utf-16 替换为 utf-8。解决这个问题的Pythonic方法是什么?
蟒蛇代码:
import lxml.etree as etree
tree = etree.parse("req.xml")
Run Code Online (Sandbox Code Playgroud)
请求.xml:
<?xml version="1.0" encoding="utf-16"?>
<test
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
</test>
Run Code Online (Sandbox Code Playgroud)
看一下XMLParser构造函数的文档:
>>> help(etree.XMLParser)
Run Code Online (Sandbox Code Playgroud)
在其他选项中,有一个encoding参数,它允许您“覆盖文档编码”,如文档所述。
这正是您所需要的:
parser = etree.XMLParser(encoding='UTF-8')
tree = etree.parse("req.xml", parser=parser)
Run Code Online (Sandbox Code Playgroud)
如果错误消息是正确的(即文档没有任何其他问题),那么我希望它能够工作。
| 归档时间: |
|
| 查看次数: |
2375 次 |
| 最近记录: |