我想继续解析无效的XML文件,但要捕获变量中无效文件的数量。试试这个:
try:
parser = etree.XMLParser(recover=False)
tree = etree.parse(rawfile, parser=parser)
print "Good XML!"
except etree.XMLSyntaxError:
parser = etree.XMLParser(recover=True)
tree = etree.parse(rawfile, parser=parser)
print "Bad XML!"
misformattedXMLFile += 1
root = tree.getroot()
但是当引发异常时,即使正确访问了“except”子句,也不会设置“root”元素(它是“None”)。如果我在没有任何try / except的情况下运行它,只需使用“recover = True”,就可以正确设置root并处理文件。我在哪里弄错了?
答案 0 :(得分:1)
您可以使用finally
try:
#something
except etree.XMLSyntaxError:
#onotherthing
finally:
root = tree.getroot()