假設這是我的示例XML命名空間與循環中的XPath表達式有命名空間
<data>
<vnfr:vnfr-catalog xmlns:vnfr="urn:ietf:params:xml:ns:yang:nfvo:vnfr">
<vnfr:vnfr>
<vnfr:id>1234</vnfr:id>
<vnfr:vdur>
<vnfr:id>987</vnfr:id>
<vnfr:id>987</vnfr:id>
<vnfr:management-ip>10.100.100.10</vnfr:management-ip>
</vnfr:vdur>
<vnfr:vdur>
<vnfr:id>567</vnfr:id>
<vnfr:id>567</vnfr:id>
<vnfr:management-ip>10.100.100.11</vnfr:management-ip>
</vnfr:vdur>
</vnfr:vnfr>
</vnfr:vnfr-catalog>
</data>
我有我在Java中
expression="/data/*[local-name() = 'vnfr-catalog']/*[local-name() = 'vnfr']/*[local-name() = 'id']/*[local-name() = 'vdur']/*[local-name() = 'management-ip']/text()";
輸出使用示例XPath表達式:10.100.100.10
但如何迭代和獲取第二管理-IP即10.100.100.11
我試過了vdur [2]低表達,但它沒有奏效。
expression="/data/*[local-name() = 'vnfr-catalog']/*[local-name() = 'vnfr']/*[local-name() = 'id']/*[local-name() = 'vdur[2]']/*[local-name() = 'management-ip']/text()";
如何使用表達式獲取第二管理IP ??????
是的,但我想它將在忽略xPath命名空間的情況下完成。這不工作! – Tushar
@Tushar看到我答案的最後一行。同時檢查你的錯誤從我的回答頂部 –
好吧知道了......但有一個疑問,如何找到Java中給定的XML中可用的「vdur」屬性的長度? – Tushar