私はこれを説明する方法がわからないので、より良い方法があれば教えてください。Xpath - これは可能ですか?値が一致する別のノードの値を持つノードを見つけますか?
XML Forを検索するのに必要な値がありますが、結果セットを取得する前に別の値を検索する必要があります。
私がお見せしましょう:
<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>
私は1262753194.
のmemidnumを持つすべてのMemHead年代と一致するmemrecnoを持って、私はすべてのEntXtskとMemXtskを見つけたい1262753194.のmemidnumを持っていますこの例では、同じmemidnumを持つMemHeadが2つありますが、異なるmemrecno(2つのmemrecnoがあります)があります。私は2と一致するmemrecnoを持つ* Xtskをすべて見つけたいと思います。
これはXPathで可能ですか?
TaskGetResponse/*[name(.) = 'MemXtsk' or name(.) = 'EntXtsk']
を使用して
私はすべて* Xtskノードを取得することができます。
しかし、私が必要とするmemidnum-> memrecnoに関連するものだけを取得する方法がわかりません。
助けが必要です。
更新: 私は
TaskGetResponse/*[memrecno= //TaskGetResponse/*[memidnum="1262753194"]/memrecno]
を実行することができますそして、それは私にそのmemrecnoの組み合わせですべてを取得します。しかし、私はEntXtskとMemXtskだけを得る方法はわかりません。
恐ろしい - おかげ様! –
@RyanTernier:どうぞよろしくお願いいたします。任意のXPath探索にXPathビジュアライザ(http://www.huttar.net/dimitre/XPV/TopXML-XPV.html)を使用することもできます。何十年もの間、何千人もの人々がXPathを使ってXPathを楽しい方法で学びました。 –