【发布时间】:2017-08-31 10:59:19
【问题描述】:
假设这是我的带有命名空间的示例 XML
<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 中使用的示例 Xpath 表达式
expression="/data/*[local-name() = 'vnfr-catalog']/*[local-name() = 'vnfr']/*[local-name() = 'id']/*[local-name() = 'vdur']/*[local-name() = 'management-ip']/text()";
输出: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??????
【问题讨论】:
标签: java xml xpath nodes xml-namespaces