python xpath获取值,而其并行的子值匹配

时间:2017-06-29 12:32:57

标签: python xml xpath

    

    <multi-routing-engine-item>

        <re-name>n</re-name>

        <zones-information xmlns="http://xml48/juzones" j:s="de">
            <zones-security>
                <zones-security-zonename>HH</zones-security-zonename>
                <zones-security-interfaces>
                    <zones-security-interface-name>2.66</zones-security-interface-name>
                    <zones-security-interface-name>2.68</zones-security-interface-name>
                </zones-security-interfaces>
            </zones-security>
            <zones-security>        
                <zones-security-zonename>BB</zones-security-zonename>

当zones-security-interface-name为2.66

时,我想获得HH(zones-security-zonename)

多种方式。没有运气让它发挥作用

这是我的尝试:

multi-routing-engine-item/zones-information/zones-security[zones-security-interfaces/zones-security-interface-name='2.66']/zones-security-zonename

请帮忙

2 个答案:

答案 0 :(得分:1)

尝试使用xpath:

//zones-security-interface-name[.='2.66']/preceding::zones-security-zonename/text()

答案 1 :(得分:1)

获取元素:

//zones-security[.//zones-security-interface-name[text()='2.66']]/zones-security-zonename

获取文字:

在最后添加/text()

逻辑很简单: 使用zones-security搜索包含zones-security-interface-name的{​​{1}}。在找到的区域 - 获取[text()='2.66']