использование lxml и iterparse () для анализа большого (+ - 1Gb) XML-файла

Я должен проанализировать 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. Пожалуйста помоги!

Ответы на вопрос(3)

Ваш ответ на вопрос