繁体   English   中英

Python xml.etree.ElementTree 解析强制编码

[英]Python xml.etree.ElementTree parse force encoding

我收到了很多 XML 文件,其中一些文件的编码错误(例如,xml 标头是 ISO-8859-1,但所有字符串都是 UTF-8,依此类推)

使用 xml.etree.ElementTree 进行解析,这也读取带有编码的 xml 标头(有时是错误的)

input_element = xml.etree.ElementTree.parse("input.xml").getroot()

我想强制使用另一种编码并从标题中忽略它。

有什么简单的方法可以做到这一点吗?

如果您确定编码,则可以使用open()将文件读入字符串,然后使用ElementTree.fromstring()将该字符串转换为 XML 文档。

with open("input.xml", encoding="Windows-1252") as fp:
    xml_string = fp.read()
    tree = ElementTree.fromstring(xml_string)

这将忽略 XML 声明,因为文件已经被解码,尽管是手动解码。 对于普通/兼容的 XML 文档,不推荐使用此方法,您应该使用ElementTree.parse('filename')代替。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM