2012-02-08 15 views
30

xpathクエリを実行した後に結果のノードのセットの最初の要素を選択しようとしています。xpath結果セットの最初のノードを取得

私はこれを行うと:

//dl 

は、私は次の結果セットを取得します。

[<dl>​…​</dl>​, <dl>​…​</dl>​] 

がどのように私は最初のものを得ることができますか?これらはどちらも動作しません。

//dl[1] 
//dl[position()=1] 

私はChromeのWebインスペクタでこれを実行しています。

答えて

54

は、次を使用します。

(//dl)[1] 

括弧は重要です。最初のノードが//dl(の要素の集合ではなく、その親の最初の子である(つまり、//dl[1](括弧なし)を返す)が必要です。あなたが望むものより明らかにされていない...

/descendant-or-self::node()/dl[1] 

これは、1つは////dl[1]と等価になるように/descendant-or-self::node()/(すなわちに完全に展開さ)の省略形であることを認識したときに表示することが容易です。代わりに、あなたが探している:

(/descendant-or-self::node()/dl)[1] 
+0

私はそれが可能だったか分からなかった。私が(// dl)でできる他の例は何ですか? – tipu

関連する問題