假设这是我的示例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