[英]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.