Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用xpath检索数组元素_Java_Xpath_Xml Rpc - Fatal编程技术网

Java 如何使用xpath检索数组元素

Java 如何使用xpath检索数组元素,java,xpath,xml-rpc,Java,Xpath,Xml Rpc,我想获取特定id serviceOfferingID的serviceOfferingActiveFlag的值。下面是示例XML 困扰我的一点是serviceOfferingID memeber位于serviceOfferingActiveFlag之后 如何获取特定serviceOfferingID的值 <methodResponse> <params> <param> <value> <struct> <member> &l

我想获取特定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
服务产品
serviceOfferingActiveFlag
0
服务提供ID
1.
serviceOfferingActiveFlag
0
服务提供ID
2.
serviceOfferingActiveFlag
0
服务提供ID
3.
serviceOfferingActiveFlag
0
服务提供ID
4.
问候,

$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'和value/*='2']/member[name='serviceOfferingActiveFlag']/value/*”