使用 ElementTree 在 Python 中解析 XML

问题描述

我正在使用此处的文档来尝试仅获取某些元素的值(名称、ip、网络掩码)。 这是我的 xml 结构的示例:

<?xml version="1.0" ?>
    <rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="urn:uuid:5cf32451-91af-4f71-a0bd-ead244b81b1f">
            <data>
                    <interfaces xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces">
                            <interface>
                                    <name>GigabitEthernet1</name>
                                    <type xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type">ianaift:ethernetCsmacd</type>   
                                    <enabled>true</enabled>
                                    <ipv4 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip">
                                            <address>
                                                    <ip>192.168.40.30</ip>
                                                    <netmask>255.255.255.0</netmask>
                                            </address>
                                    </ipv4>
                                    <ipv6 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip"/>
                            </interface>
                            <interface>
                                    <name>GigabitEthernet2</name>
                                    <type xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type">ianaift:ethernetCsmacd</type>   
                                    <enabled>true</enabled>
                                    <ipv4 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip">
                                            <address>
                                                    <ip>10.10.10.1</ip>
                                                    <netmask>255.255.255.0</netmask>
                                            </address>
                                    </ipv4>
                                    <ipv6 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip"/>
                            </interface>
                            
                    </interfaces>
            </data>
    </rpc-reply> 

Python 代码:此代码不返回任何内容

import xml.etree.ElementTree as ET
    
    tree = ET.parse("C:\\Users\\Redha\\Documents\\test_network\\interface1234.xml")
    root = tree.getroot()
    namespaces = {'interfaces': 'urn:ietf:params:xml:ns:yang:ietf-interfaces'  }
    for elem in root.findall('.//interfaces:interfaces',namespaces): 
            s0 = elem.find('.//interfaces:name',namespaces)
            name = s0.text
            print(name)
        

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)