You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ElementTree无法找到指定子元素AuthorisationNr的问题求助

ElementTree解析XML标签异常求助

使用Python的ElementTree解析XML时,可正常定位ns4:Data节点下的ParallelCircuit等标签,但无法找到AuthorisationNr标签。遍历ns4:Data的子元素时能看到该元素存在,甚至直接复制完整标签名调用find()方法也无效,寻求技术解决方案。

相关XML片段

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns4:ExportActualMedicines xmlns="urn:be:fgov:ehealth:samws:v2:actual:common" ... xmlns:ns4="urn:be:fgov:ehealth:samws:v2:export" xmlns:ns5="urn:be:fgov:ehealth:samws:v2:refdata" ... version="6.0" SamId="E.20240325_150005">
    <ns4:Amp code="SAM660978-00">
        <ns4:Ampp ctiExtended="660978-01">
            <ns4:Data from="2023-01-10" to="2023-01-31">
                <AuthorisationNr>HO-BE-UH660978</AuthorisationNr>
                <ParallelCircuit>0</ParallelCircuit>
                <PackDisplayValue>
                    ...
                </PackDisplayValue>
                <Status>AUTHORIZED</Status>
                ...
            </ns4:Data>
        </ns4:Ampp>
    </ns4:Amp>
</ns4:ExportActualMedicines>

相关Python代码片段

NS4 = '{urn:be:fgov:ehealth:samws:v2:export}'
XMLNS = '{urn:be:fgov:ehealth:samws:v2:actual:common}'

tree = ET.parse(file)
root = tree.getroot()
for amp in root.findall(f'{NS4}Amp')
    for item in amp:
        if item.tag == f'{NS4}Ampp':
           ampp = {'code': item.attrib['ctiExtended'],
                   'data': []}

           for elem in item:
               if elem.tag == f'{NS4}Data':
                   authorisation_number = elem.find(f'{XMLNS}AuthorisationNr')
                   parallel_circuit = elem.find(f'{XMLNS}ParallelCircuit')
                   pack_display_value = elem.find(f'{XMLNS}PackDisplayValue')
                   ampp['data'].append({
                     'from': elem.attrib['from'],
                     'to': elem.attrib['to'] if 'to' in elem.attrib else None,
                     'authorisation_number': authorisation_number if authorisation_number else None,
                     'pack_display_value': pack_display_value[0].text if pack_display_value else None,
                     'parallel_circuit': parallel_circuit.text if parallel_circuit else None
                     ...
                   })

遍历ns4:Data子元素的输出

if elem.tag == f'{NS4}Data':
    for data in elem:
        print(data)

---
Output:
<Element '{urn:be:fgov:ehealth:samws:v2:actual:common}AuthorisationNr' at 0x00000212DB3235B0>
...
<Element '{urn:be:fgov:ehealth:samws:v2:actual:common}ParallelCircuit' at 0x00000212DB323D80>
<Element '{urn:be:fgov:ehealth:samws:v2:actual:common}PackDisplayValue' at 0x00000212DB323E20>
...

内容的提问来源于stack exchange,提问作者Rafael

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 21:22:47