Найти родительский элемент тега «title», содержащего определенный текст, используя Python ElementTree - PullRequest
0 голосов
/ 04 февраля 2019

Я хочу проанализировать xml-файл и извлечь родительский файл <sec>, который содержит <title>, соответствующий определенному тексту, с использованием Python 3.7 & ElementTree

    ...
    <sec id="s0010">
     <label>2</label>
     <title>Materials and methods</title>
     </sec>
    <sec id="s0015">
     <label>3</label>
     <title>Summary</title>
     </sec>

     ...

Мне удалось найти заголовок с помощью ET:

for title in parent.iter('title'):
                        text = title.text
                        if(text):
                                if("methods" in text.lower()):
                                        print("**title: "+text+"****")

Но как мне получить родительский объект (<sec>) заголовка, содержащий интересующий текст?

1 Ответ

0 голосов
/ 04 февраля 2019

Выполните (вложенную) итерацию в 2 этапа: на сек , а затем на title .Что-то вроде:

for sec in parent.iter("sec"):
    for title in sec.iter("title"):
        text = title.text
        if text and "methods" in text.lower():
            print("**title: " + text + " **** sec id: " + sec.get("id", ""))

Для получения более подробной информации, проверьте [Python 3]: xml.etree.ElementTree - API-интерфейс ElementTree XML .

...