Я не знаю, как это объяснить, поэтому, если есть лучший способ, пожалуйста, дайте мне знать.
У меня есть значение, которое мне нужно найти в XML, но я хочу найти другое значение, прежде чем получу набор результатов.
Позвольте мне показать вам:
<n:TaskGetResponse>
<MemHead>
<memidnum>1262753194</memidnum>
<memrecno>22672100</memrecno>
</MemHead>
<MemHead>
<memidnum>1262753194</memidnum>
<memrecno>22672104</memrecno>
</MemHead>
<EntXtsk>
<caudrecno>6348855</caudrecno>
<memrecno>22672100</memrecno>
</EntXtsk>
<EntXtsk>
<caudrecno>6348855</caudrecno>
<memrecno>22672101</memrecno>
</EntXtsk>
<EntXtsk>
<caudrecno>6348878</caudrecno>
<memrecno>22672102</memrecno>
</EntXtsk>
<MemXtsk>
<caudrecno>6348878</caudrecno>
<memrecno>22672103</memrecno>
</MemXtsk>
</n:TaskGetResponse>
У меня есть memidnum 1262753194. Я хочу найти все EntXtsk и MemXtsk, которые имеют memrecno, который соответствует всем MemHead, которые имеют memidnum 1262753194.
В этом примере у меня есть 2 MemHeads, которые имеют одинаковый memidnum, но разные memrecno (есть 2 memrecno для просмотра). Я хочу найти все * Xtsk, которые имеют memrecno, которые соответствуют 2.
Возможно ли это с XPath?
Использование
TaskGetResponse/*[name(.) = 'MemXtsk' or name(.) = 'EntXtsk']
Я могу получить все * Xtsk узлы.
Но не уверен, как получить те, которые связаны только с memidnum-> memrecno, который мне нужен.
Любая помощь будет качаться.
Обновление:
Я могу бежать
TaskGetResponse/*[memrecno= //TaskGetResponse/*[memidnum="1262753194"]/memrecno]
И это дает мне все, что с этой комбинацией memrecno. Но я не уверен, как сказать, только получить меня EntXtsk и MemXtsk.