如何在Python中处理libxml2解析器错误异常
我在尝试写一个程序,目的是用 XSL 样式表来解析 XML 文件,并把它们转换成 HTML 格式。
但是,当我遇到有问题的 XML 输入文件时,就会出现异常错误:
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python27\lib\lib-tk\Tkinter.py", line 1410, in __call__
return self.func(*args)
File "C:\Users\USER\Desktop\raportowanie\topsurv raport_beta01\_newest\transmutation for trimble\testing_transmutation_v.0.6.2.py", line 712, in btnConvertClick
doc = libxml2.parseFile(filename)
File "C:\Python27\lib\site-packages\libxml2.py", line 1279, in parseFile
if ret is None:raise parserError('xmlParseFile() failed')
parserError: xmlParseFile() failed
我也尝试过其他方法,但都没有成功:
try:
doc = libxml2.parseFile(filename)
except (libxml2.parserError, TypeError):
print 'error'
结果是,我没有得到任何异常错误,解析器的表现就像一切都正常一样。
我想请教大家,能帮我解决这个问题吗?
1 个回答
1
我推荐使用BeautifulSoup,因为它可以处理格式不正确的XML文件。
实际上,它的功能列表中第一个就是:
Beautiful Soup不会因为你给它错误的标记而崩溃。它会生成一个解析树,这个树大致上和你原来的文档有相似的结构。通常,这样就足够让你提取所需的数据,然后就可以走了。