の最初の結果を選択して、私はこの質問を見てきました:Select first instance only with XPath?XPathの
しかし、私はノードセットのようにしている場合:
<container value="">
<data id="1"></data>
<data id="2">test</data>
<container>
<data id="1">test</data>
<data id="3">test</data>
</container>
</container>
を今私のシナリオは、このノードセットが深いということです文書の中には、内部のコンテナへのポインタがあります。だから、私はXPathに "/ container/container"という接頭辞を付けなければなりません(実際にはパスは長くなりますが、この例ではそうするべきです)。
EDIT: 私が必要とするのは、idが1の「データ」ノードです。このノードは、最初に最も低いノードまたは最も近い祖先から来る必要があります。だから、もし私が "現在"(/コンテナ/コンテナ)でそれを見つけることができないなら、私は先祖を見て、最も近いものを得るべきです(あるいは最後に何も見つけられません)。私はこれを試してみました:
/コンテナ/コンテナ/祖先-または自己::コンテナ/データ[ID @ = "1"] 2ノードとの結果セットを戻します
。私は最後の()を使って最深のものを得ることができると思ったので、最後にそれをつけましたが、無駄にしました。
仕様がより明瞭で行うことができました。データノードが必要ですか?データノードのIDは1ですか?データノードのIDが1でない場合は元のコンテナを作成し、ドキュメントを親コンテナに移動して、IDが1のデータノードがあるかどうかを確認します。 1が見つかりました。それはそれを記述していますか? – AnthonyWJones
私は少し鮮明に見ていたものを説明しようとしましたが、いくつかはそれを推測しました。ごめんなさい! –