Как распечатать текст определенного элемента c xml в python? - PullRequest
0 голосов
/ 10 июля 2020

Мой xml файл имеет следующий формат:

<data>
    <dict>
        <key>Major Version</key><integer>1</integer>
        <key>Minor Version</key><integer>3</integer>
    </dict>
    <dict>
        <key>Major Version</key><integer>5</integer>
        <key>Minor Version</key><integer>6</integer>
    </dict>
</data>

Я пытаюсь распечатать текст определенного c xml элемента ... например, я хочу распечатайте только значение 1 или 5 для ключевого элемента «Основная версия». Как мне это сделать?

Мой Python код (Python3) в настоящее время выглядит так:

fname = input('Enter filename: ')
if len(fname) < 1:
    fname = 'librarytest.xml'

doc = ET.parse(fname)
doc_content = doc.getroot()

chk_tag = False

for dict in doc_content:
    chk_tag = False
    for ele in dict:
        if ele.tag == 'key' and ele.text == 'Major Version':
            chk_tag = True
        if chk_tag and ele.tag == 'integer':
            print(ele.text)

Он возвращает все значения тега Integer

1 Ответ

0 голосов
/ 10 июля 2020

Если я вас правильно понял, вы, вероятно, ищете что-то вроде этого:

vers =  doc_content.findall('.//key')
ints =  doc_content.findall('.//integer')
for v, i in zip(vers,ints):
    if v.text == "Major Version":
        print(i.text)

Вывод:

1
5
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...