如果给定的xml中属性值不为空,则获取属性值

时间:2017-11-13 08:48:51

标签: xpath xquery osb

在下面的XML中我需要属性值(ID =" 5682094")如果Type =" CARMENT"来自IdealId元素

<ns0:doingRS xmlns:ns0="http://myorg.com" xmlns:ns2="http://commonOrg">
    <ns2:Pass/>
    <ns0:something>
        <ns0:some abc="false" xyz="false" prq="track" str="RACK" fdg="true" fgdg="true" fdfd="false" ewe="false" ytyt="false" trtrt="false" ewew="false" fdfdf="false" bgn="false" ujm="false" qa="false" qws="false" qwe="false" wqwqwqw="false">
            <ns2:SomeRates>
                <ns2:SomeRate CodeH="track" someCode="RACK">
                    <ns2:SomeProfile>
                        <ns2:SomeProfileList>
                            <ns2:IdealID Type="Prr" Ideal_CTX="ABC" ID="5033095"/>
                            <ns2:IdealID Type="CARMENT" Ideal_CTX="ABC" ID=""/>
                        </ns2:SomeProfileList>
                    </ns2:SomeProfile>
                    <ns2:SomeProfile>
                        <ns2:SomeProfileList>
                            <ns2:IdealID Type="Prr" Ideal_CTX="ABC" ID="5043839"/>
                            <ns2:IdealID Type="CARMENT" Ideal_CTX="ABC" ID=""/>
                        </ns2:SomeProfileList>
                    </ns2:SomeProfile>
                    <ns2:SomeProfile>
                        <ns2:SomeProfileList>
                            <ns2:IdealID Type="Prr" Ideal_CTX="ABC" ID="5682094"/>
                            <ns2:IdealID Type="CARMENT" Ideal_CTX="ABC" ID="5682094"/>
                        </ns2:SomeProfileList>
                    </ns2:SomeProfile>
                </ns2:SomeRate>
            </ns2:SomeRates>
        </ns0:some>
    </ns0:something>
</ns0:doingRS>

总而言之,当且仅当属性不为空时,我才需要属性值。 如果存在xpath / xquery来提取属性Id,请帮我解决

1 个答案:

答案 0 :(得分:2)

选择项目@Type =&#34; CARMENT&#34;然后它不是空ID

//*[@Type="CARMENT"]/@ID[not(.="")]