Просто для справки, вы можете достичь того же результата с

ужно проанализировать XML-файл, чтобы извлечь некоторые данные. Мне нужны только некоторые элементы с определенными атрибутами, вот пример документа:

<root>
    <articles>
        <article type="news">
             <content>some text</content>
        </article>
        <article type="info">
             <content>some text</content>
        </article>
        <article type="news">
             <content>some text</content>
        </article>
    </articles>
</root>

Здесь я хотел бы получить только статью с типом «новости». Какой самый эффективный и элегантный способ сделать это с lxml?

Я пытался с методом поиска, но это не очень приятно:

from lxml import etree
f = etree.parse("myfile")
root = f.getroot()
articles = root.getchildren()[0]
article_list = articles.findall('article')
for article in article_list:
    if "type" in article.keys():
        if article.attrib['type'] == 'news':
            content = article.find('content')
            content = content.text

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

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