gpt4 book ai didi

python - lxml.etree.XMLSyntaxError,文档标记为 UTF-16 但具有 UTF-8 内容

转载 作者:行者123 更新时间:2023-12-01 09:28:48 32 4
gpt4 key购买 nike

lxml.etree.XMLSyntaxError, Document labelled UTF-16 but has UTF-8 content

我在 python 中使用 lxml lib 时收到错误。其他解决方案/黑客正在将文件 php.ini 中的 utf-16 替换为 utf-8。解决这个问题的Pythonic方法是什么?

Python 代码:

import lxml.etree as etree

tree = etree.parse("req.xml")

req.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>

最佳答案

查看 XMLParser 构造函数的文档:

>>> help(etree.XMLParser)

在其他选项中,有一个 encoding 参数,它允许您“覆盖文档编码”,如文档所述。

这正是您所需要的:

parser = etree.XMLParser(encoding='UTF-8')
tree = etree.parse("req.xml", parser=parser)

如果错误消息是正确的(即文档没有任何其他问题),那么我希望它能够工作。

关于python - lxml.etree.XMLSyntaxError,文档标记为 UTF-16 但具有 UTF-8 内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50135592/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com