30
我試圖在執行xpath查詢後選擇一組結果節點中的第一個元素。在xpath結果集中獲取第一個節點
當我這樣做:
//dl
我得到以下結果集:
[<dl>…</dl>, <dl>…</dl>]
我怎樣才能獲得的第一個?這些都沒有工作:
//dl[1]
//dl[position()=1]
我在Chrome的Web檢查器中執行此操作。
我試圖在執行xpath查詢後選擇一組結果節點中的第一個元素。在xpath結果集中獲取第一個節點
當我這樣做:
//dl
我得到以下結果集:
[<dl>…</dl>, <dl>…</dl>]
我怎樣才能獲得的第一個?這些都沒有工作:
//dl[1]
//dl[position()=1]
我在Chrome的Web檢查器中執行此操作。
使用以下命令:
(//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]
我不知道這是可能的。還有什麼其他例子可以處理(// dl)? – tipu 2012-02-08 18:59:09