如何在Python中处理libxml2解析器错误异常

0 投票
1 回答
1721 浏览
提问于 2025-04-17 10:05

我在尝试写一个程序,目的是用 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不会因为你给它错误的标记而崩溃。它会生成一个解析树,这个树大致上和你原来的文档有相似的结构。通常,这样就足够让你提取所需的数据,然后就可以走了。

撰写回答