我必须解析具有如下结构的 1Gb XML 文件,并提取标签“作者”和“内容”中的文本:
<Database>
<BlogPost>
<Date>MM/DD/YY</Date>
<Author>Last Name, Name</Author>
<Content>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas dictum dictum vehicula.</Content>
</BlogPost>
<BlogPost>
<Date>MM/DD/YY</Date>
<Author>Last Name, Name</Author>
<Content>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas dictum dictum vehicula.</Content>
</BlogPost>
[...]
<BlogPost>
<Date>MM/DD/YY</Date>
<Author>Last Name, Name</Author>
<Content>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas dictum dictum vehicula.</Content>
</BlogPost>
</Database>
到目前为止,我已经尝试了两件事:i) 读取整个文件并使用 .find(xmltag) 遍历它;ii) 使用 lxml 和 iterparse() 解析 xml 文件。第一个选项我已经让它工作了,但它很慢。第二个选项我还没有成功。
这是我所拥有的一部分:
for event, element in etree.iterparse(path_to_file, tag="BlogPost"):
if element.tag == "BlogPost":
print element.text
else:
print 'Finished'
结果只是空格,其中没有文本。
我一定是做错了什么,但我无法理解。另外,如果还不够明显,我对 python 还是很陌生,这是我第一次使用 lxml。请帮忙!