2012-02-08 277 views
30

我試圖在執行xpath查詢後選擇一組結果節點中的第一個元素。在xpath結果集中獲取第一個節點

當我這樣做:

//dl 

我得到以下結果集:

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

我怎樣才能獲得的第一個?這些都沒有工作:

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

我在Chrome的Web檢查器中執行此操作。

回答

54

使用以下命令:

(//dl)[1] 

括號是顯著。你想要得到的第一個節點來自//dl(而不是一組dl元素是其父項的第一個子元素(這是//dl[1](無parens)返回))。

這是比較容易看到當一個人意識到//是簡寫(即展開充分)/descendant-or-self::node()/使//dl[1]等同於:

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

...這是比較明顯的不是你想要的。相反,你正在尋找:

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

我不知道這是可能的。還有什麼其他例子可以處理(// dl)? – tipu 2012-02-08 18:59:09