как получить элемент массива с помощью xpath - PullRequest
0 голосов
/ 15 марта 2012

Я хочу получить значение serviceOfferingActiveFlag определенного идентификатора serviceOfferingID. Пример 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>

С уважением,

1 Ответ

0 голосов
/ 15 марта 2012
$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 в соответствии с вашими требованиями.

...