В общем, я отлично использовал метод .find () для просмотра XML-файлов, которые были проанализированы с помощью ElementTree. И затем для всего, что вы найдете, вы можете использовать element.text, element.attrib и element.tag, чтобы получить текст, словарь атрибутов и имя элемента соответственно.
Объедините это с пониманием списка, и это звучит так, как будто вы ищете.
В качестве примера предположим, что у вас есть xml-файл, сохраненный как 'publishing.xml':
import xml.etree.ElementTree as ET
filename = 'publications.xml'
content = ET.parse(filename)
root = content.getroot()
abstracts = [a.text for a in root.find('PubmedArticle/Abstract')]
даст вам список текста в 4 тезисах.
Доступ ко всем идентификаторам можно выполнить аналогичным образом, добавив проверку правильности IdType. С помощью метода, упомянутого выше, вы можете аналогичным образом получить список всех элементов с именем ArticleId и затем получить доступ к IdType, используя
element.attrib['IdType']
для каждого элемента в данном списке.
Что касается последнего запроса, я не совсем уверен, что вы имеете в виду, когда сначала извлекаете значение UI. Если вы просто хотите убедиться, что вы извлекаете оба значения, вы можете перебрать все элементы в
root.find('PubmedArticle/PublicationTypeList')
и сохраните как element.attrib ['UI'], так и element.text