Team, I am going through multiple XPATH tutorials, but not able to achieve the below expectation using one XPathExpression.
How to get PostpaidInformation --> ActiveValue and Date value of AccountNumber=AC-12 ..?
<params>
<param>
<value>
<struct>
<member>
<name>PrepaidInformation</name>
<value>
<struct>
<member>
<name>activationStatus</name>
<value>
<boolean>1</boolean>
</value>
</member>
</struct>
</value>
</member>
<member>
<name>MixedInformation</name>
<value>
<struct>
<member>
<name>activationStatus</name>
<value>
<boolean>0</boolean>
</value>
</member>
</struct>
</value>
</member>
<member>
<name>PostpaidInformation</name>
<value>
<array>
<data>
<value>
<struct>
<member>
<name>ActiveValue</name>
<value>
<string>60</string>
</value>
</member>
<member>
<name>Date</name>
<value>
<string>20170225T12:00:00</string>
</value>
</member>
<member>
<name>AccountNumber</name>
<value>
<i4>AC-12</i4>
</value>
</member>
</struct>
</value>
<value>
<struct>
<member>
<name>ActiveValue</name>
<value>
<string>23</string>
</value>
</member>
<member>
<name>Date</name>
<value>
<string>20170225T12:00:00</string>
</value>
</member>
<member>
<name>AccountNumber</name>
<value>
<i4>AC-13</i4>
</value>
</member>
</struct>
</value>
</data>
</array>
</value>
</member>
</struct>
</value>
</param>
</params>
Note i have to match PostpaidInformation, then match on AccountNumber = AC-12. If it matches prints all the information about that account.
Maybe what i need is //methodResponse/params/param/value/struct/member/name[text()=\"PostpaidInformation\"] TRAVERSE all the accounts within this till finding AccountNumber=AC-12, if found then back out one level from member/value to reach <struct> to iterate all the <member> inside that struct.
Expected Output is NodeSet of below to traverse.
<member>
<name>ActiveValue</name>
<value>
<string>60</string>
</value>
</member>
<member>
<name>Date</name>
<value>
<string>20170225T12:00:00</string>
</value>
</member>
<member>
<name>AccountNumber</name>
<value>
<i4>AC-12</i4>
</value>
</member>
Actual answer from
Anderson is
//member/name[text()="PostpaidInformation"]/following-sibling::
value/array/data/value/struct[member[name="AccountNumber"]/value/i4="AC-12"]
har07 is
//member[name='PostpaidInformation']//struct[member[name='AccountNumber' and value/i4='AC-12']]/member