我正在使用utf-16
函数解析用ElementTree.parse
编码的xml文件。
当文件包含一些格式不正确的字符(如♀, ♂
.etc)并且出现错误“xml.parsers.expat.ExpatError: not well-formed (invalid token)
”时,程序将崩溃。
如何避免此错误并解决此问题?我怎么能忽略这些格式不好的字符呢?谢谢!以下是我的代码:
tree = ElementTree()
root = tree.parse(xml_file)
xml_file是以utf-16格式编码的文件。
错误会指出格式不正确的字符的行号和列号。
最佳答案
因为xml.parsers.expat.ParserCreate
只支持四种编码,所以我会全部尝试。这些编码是:UTF-8
、UTF-16
、ISO-8859-1
(Latin1
)和ASCII
。
现在可以使用如下编码运行ElementTree.parse
:
from xml.etree.ElementTree import ElementTree
from xml.parsers import expat
tree = ElementTree()
root = tree.parse(xml_file, parser=expat.ParserCreate('UTF-8') )
root = tree.parse(xml_file, parser=expat.ParserCreate('UTF-16') )
root = tree.parse(xml_file, parser=expat.ParserCreate('ISO-8859-1') )
root = tree.parse(xml_file, parser=expat.ParserCreate('ASCII') )
关于python - 如何使用python中的elementtree处理xml文件中格式不正确的字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11289496/