Можно ли искать элементы XML по текстовому значению подэлемента в lxml? - PullRequest
2 голосов
/ 13 октября 2011

У меня есть XML-файл со структурой, подобной этой:

<index>
    <compound kind="file">
        <name>file.c</name>
        <member kind="variable"><name>foo</name></member>
        <member kind="variable"><name>bar</name></member>
        ...
    </compound>
    <compound kind="file">
        <name>file.h></name>
        <member>...
    </compound>
</index>

Мне нужно выполнить поиск по имени члена файла, но я не могу понять, есть ли способ, позволяющий избежать итерации всего дерева. Мое решение в настоящее время выглядит так:

for f in xmlroot.iter("compound"):
    for m in f.iter("member"):
        if m.find("name").text == my_var_name:
            print "Found"

Есть ли способ использовать поиск dict () для повышения эффективности, потому что на самом деле у меня есть еще один цикл for выше, который проходит по списку переменных для поиска, поэтому с точки зрения производительности это действительно плохо.

Повысит ли производительность эти два цикла for для одного поиска XPath?

...