使用lxml解析不同文件夹中的多个xml文件

时间:2016-12-22 09:20:01

标签: xml python-2.7 xml-parsing lxml

我正在尝试使用lxml解析来自不同文件夹的多个XML文件。我正在使用 os.walk() fnmatch.filter()来查找xml文件,例如,文件夹名称​​ testlog 。在此文件夹中,有更多子文件夹,每个子文件夹中都有名为 result.xml 的xml文件。我正在尝试解析这些xml文件,并使用Reportlab为每个 result.xml 生成PDF。我的解析代码是:

import os
from lxml import etree
import fnmatch

path = 'C:/Users/Name/Desktop/testlog'

for root, dirs, files in os.walk(path):
    for files in fnmatch.filter(files, 'result.xml'):
#       print files   
        tree = etree.parse(files)

如果我打印文件,我可以列出所有 result.xml 文件,但如果我正在尝试解析,我会收到以下错误:

IOError: Error reading file 'result.xml' : failed to load external entity "result.xml"

有人能告诉我如何解决这个问题吗?提前谢谢。

1 个答案:

答案 0 :(得分:0)

文件只是文件的名称; root是它所在目录的路径。你需要将两者结合起来(比如使用os.path.join)来打开那个特定的文件。