Мне нужно проанализировать XML-файл объемом 1 ГБ со структурой, подобной приведенной ниже, и извлечь текст в тегах «Автор» и «Содержимое»:
<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) проанализировать xml-файл с помощью lxml и iterparse ().Первый вариант у меня это работает, но он очень медленный.Второй вариант мне не удалось получить его с нуля.
Вот часть того, что у меня есть:
for event, element in etree.iterparse(path_to_file, tag="BlogPost"):
if element.tag == "BlogPost":
print element.text
else:
print 'Finished'
В результате получаются только пустые места без текста вих.
Я, должно быть, делаю что-то не так, но я не могу понять это.Кроме того, если это не было достаточно очевидно, я новичок в Python, и я впервые использую lxml.Пожалуйста, помогите!