【问题标题】:how to retrieve array element with xpath如何使用 xpath 检索数组元素
【发布时间】:2012-03-15 09:51:34
【问题描述】:

我想获取特定 id serviceOfferingID 的 serviceOfferingActiveFlag 的值。示例 XML 如下。

困扰我的一点是 serviceOfferingID 成员出现在 serviceOfferingActiveFlag 之后。

我如何获得特定 serviceOfferingID 的价值?

<methodResponse>
<params>
<param>
<value>
<struct>
<member>
<name>responseCode</name>
<value><i4>0</i4></value>
</member>
<member>
<name>serviceOfferings</name>
<value>
<array>
<data>
<value>
<struct>
<member>
<name>serviceOfferingActiveFlag</name>
<value><boolean>0</boolean></value>
</member>
<member>
<name>serviceOfferingID</name>
<value><i4>1</i4></value>
</member>
</struct>
</value>
<value>
<struct>
<member>
<name>serviceOfferingActiveFlag</name>
<value><boolean>0</boolean></value>
</member>
<member>
<name>serviceOfferingID</name>
<value><i4>2</i4></value>
</member>
</struct>
</value>
<value>
<struct>
<member>
<name>serviceOfferingActiveFlag</name>
<value><boolean>0</boolean></value>
</member>
<member>
<name>serviceOfferingID</name>
<value><i4>3</i4></value>
</member>
</struct>
</value>
<value>
<struct>
<member>
<name>serviceOfferingActiveFlag</name>
<value><boolean>0</boolean></value>
</member>
<member>
<name>serviceOfferingID</name>
<value><i4>4</i4></value>
</member>
</struct>
</value>
</data>
</array>
</value>
</member>
</struct>
</value>
</param>
</params>
</methodResponse>

问候,

【问题讨论】:

    标签: java xpath xml-rpc


    【解决方案1】:
    $methodResponse/params/param/value/struct/member[name eq 'serviceOfferings']/value
    /array/data/value/struct[member[name eq 'serviceOfferingID']/value/i4 eq '1']
    /member[name eq 'serviceOfferingActiveFlag']/value
    

    上面将为您提供“serviceOfferingActiveFlag”对应的值元素,其中“serviceOfferingID”等于 1

    我已使用完整的 xpath 进行导航。您可以在任何需要的地方使用“//”来减少 xpath 长度。但请注意,使用 '//' 会降低查询的性能。您可以根据需要在 xpath 中定制一些过滤器。

    【讨论】:

    • 以下表达式运行良好 "//struct[member[name = 'serviceOfferingID' and value/* = '2']]/member[name = 'serviceOfferingActiveFlag']/value/*"跨度>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-14
    • 1970-01-01
    • 1970-01-01
    • 2017-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多