我想获得特定id serviceOfferingID的serviceOfferingActiveFlag的值。示例XML如下。
困扰我的一点是serviceOfferingID memeber来自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>
此致
答案 0 :(得分:0)
$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中定制一些过滤器。