Python - XML Soap Формат - получить значения дочерних элементов - PullRequest
0 голосов
/ 28 января 2020

Вот мой XML, ЕГО SOAP формат.

Я пытаюсь получить значение элемента <field> в python. К сожалению, в конечном итоге с ошибкой ниже. Как я могу l oop и получить значения в al oop. Пожалуйста помоги.

<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope bme:version="1-2" xmlns="http://hr.tridents.com/2011" xmlns:bme="http://ibbus.tridents.com/2009/bus-message-envelope" xmlns:env="http://www.w3.org/2003/05/soap-envelope" 
            mlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <env:Header>
        <bme:Timestamp>2030-01-25</bme:Timestamp>
        <bme:MessageId>abxc</bme:MessageId>
        <bme:RefToMessageId>standar2x</bme:RefToMessageId>
        <bme:PayloadInfo>
            <bme:PartInfo>
                <bme:MessageStandard>TPD</bme:MessageStandard>
                <bme:MessageType>EMP-HRDATA</bme:MessageType>
            </bme:PartInfo>
        </bme:PayloadInfo>
    </env:Header>
    <env:Body>
        <referenceData>
            <fieldEnums schemaVersion="1-0">
                <fieldEnum>
                <field>IDTAX</field>
                <enum>
                    <code>TEST</code>
                    <version>2</version>
                    <lastUpdatedTimestamp>2025-06-19T20:27:04</lastUpdatedTimestamp>
                    <description>Otherc</description>
                    <statusCode>A</statusCode>
                    <deleteIndicator>R</deleteIndicator>
                </enum>
                <enum>
                    <code>TEST1</code>
                    <version>2</version>
                    <lastUpdatedTimestamp>2045-11-19T20:27:04</lastUpdatedTimestamp>
                    <description>BigBang</description>
                    <statusCode>K</statusCode>
                    <deleteIndicator>T</deleteIndicator>
                </enum>
                </fieldEnum>
            </fieldEnums>
        </referenceData>    
    </env:Body>
</env:Envelope>
import xml.etree.ElementTree as ET
tree = ET.parse("D:\\xml_file.xml")
root = tree.getroot()
ns = {'env': 'http://www.w3.org/2003/05/soap-envelope'}
print tree.find('.//env:field',ns).text

Ошибка: print tree.find ('.// ​​env: field', ns) .text AttributeError: Объект 'NoneType' не имеет атрибута 'text'

...