Как я могу разобрать XML-файл в Python

Есть хорошо сохранившиеся библиотеки, которые уже делают это. Одним из примеров в реестре npm является слияние

0
задан prex 28 March 2019 в 06:02
поделиться

1 ответ

Вы можете выполнять рекурсивную итерацию, используя .iter() для поиска элементов. Проверьте официальную документацию .

Вот пример для печати текста label и host из узла slave.

Обновление : code.py модифицируется для дополнительной печати значения атрибута class тега launcher. Он использует element.attrib для получения атрибутов тега. Больше можно найти в официальной документации парсинга XML .

test.xml:

<slave>
    <name>some_name</name>
    <description/>
    <remoteFS>some_value</remoteFS>
    <numExecutors>xx</numExecutors>
    <mode>xxx</mode>
    <retentionStrategy class="xxxx"/>
    <launcher class="xxxxx" plugin="xxxxx">
        <host>xxx.x.x.xx</host>
        <port>xx</port>
        <credentialsId>xxxxxxxx</credentialsId>
        <maxNumRetries>x</maxNumRetries>
        <retryWaitTime>x</retryWaitTime>
        <sshHostKeyVerificationStrategy class="hudson.plugins.sshslaves.verifiers.NonVerifyingKeyVerificationStrategy"/>
    </launcher>
    <label>somelabel</label>
</slave>

code.py:

import xml.etree.ElementTree as ET
tree = ET.parse("test.xml")
root = tree.getroot()

for item in root.iter('slave'):
    for label in item.iter("label"):
        print label.text
    for host in item.iter("host"):
        print host.text
    for launcher in item.iter("launcher"):
        print launcher.attrib["class"]

Выход:

somelabel
xxx.x.x.xx
xxxxx
0
ответ дан arsho 28 March 2019 в 06:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: