我正在从大型XML文件(10MB)中解析大量重复数据,然后解析超过100,000个这些文件。我想确保我有效地解析。首先,我列出了我想要找到的所有Element路径。这可能是100-200个不同的元素,然后我想找到它们并将它们存储在字典键中,并按元素名称存储。
我一直在使用iterfind(' / elementpath /'),但是返回一个生成器,然后我必须再次迭代以获取每个元素中的文本。第二个循环就是我试图消除
以下是一些代码可以完成我想要的最佳功能。每个文件大约需要2秒来解析数据。如果我可以移除嵌套循环,那么改进到1.2毫秒左右。
def parse_xml(testfile):
resultdict={}
for search in searchlist:
resultdict[search]=[]
for item in testfile.iterfind(search):
resultdict[search].append(item.text)
return resultdict