我是python的新手,我正在编写一个XML文件解析器应用程序。我有一个充满XML文件的目录,我需要迭代。每个文件都有属性集,例如“HeadLine”。我正在使用下面的代码解析文件
def index(request):
dirlist = glob.glob("/home/somebody/vids/*.xml")
for item in dirlist:
newsML = ET.parse(item)
NewsLines = newsML.getroot()
HeadLine = NewsLines.getiterator("HeadLine")
我不确定的是如何从循环的每次迭代中保存HeadLine元素。在PHP中,例如id,只需将其放入多维数组中,如;
$results[]['HeadLine']
在python中处理这个问题的最佳方法是什么?如果有帮助,我也在使用Django框架
答案 0 :(得分:5)
在Python中执行此操作的常用方法是附加到列表中。
results = []
for item in dirlist:
newsML = ET.parse(item)
NewsLines = newsML.getroot()
HeadLine = NewsLines.getiterator("HeadLine")
results.append(HeadLine)
如果您还希望将所有元素作为列表从迭代器中提取出来,那么最后一行将是results.append(list(HeadLine))
。
答案 1 :(得分:1)
由于循环中没有执行其他操作,您可以按如下方式编写它:
results = [ET.parse(item).getroot().getiterator("HeadLine") for item in dirlist]