我必须使用如下结构解析1Gb XML文件,并在"Author"和"Content"标签中提取文本:
<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>
Run Code Online (Sandbox Code Playgroud)
到目前为止,我已经尝试了两件事: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'
Run Code Online (Sandbox Code Playgroud)
结果只是空格,没有文字.
我必须做错事,但我无法理解.另外,如果它不够明显,我对python很新,这是我第一次使用lxml.请帮忙!