我有一個頁面上幾個H2元素開始的所有H 2節點,所述的xpath結果應該是H2元件的陣列,exluding第一n H2元素。Xpath的返回從第n個
<div>
<h2>1</h2>
<h2>2</h2>
<h2>3</h2>
</div>
....
<div>
<h2>4</h2>
<h2>5</h2>
...
<h2>n<h2>
</div>
我有一個頁面上幾個H2元素開始的所有H 2節點,所述的xpath結果應該是H2元件的陣列,exluding第一n H2元素。Xpath的返回從第n個
<div>
<h2>1</h2>
<h2>2</h2>
<h2>3</h2>
</div>
....
<div>
<h2>4</h2>
<h2>5</h2>
...
<h2>n<h2>
</div>
正確的方法簡明做到這一點是:
(//h2)[position() > n]
或
(//h2)[position() > n and position() < last() - m]
開往他們兩邊。圍繞//h2
的括號在這裏有很大的不同。
的問題是不準確的答案不夠具體,但這個想法是,你可以使用position()
過濾器來獲得,除了那些所有<h2>
元素position
小於n
。
例如,假設n
是1
,你可以根據以下步驟做:
//h2[position()>1]
鑑於這種簡單的結構化的XML輸入:
<root>
<h2>1</h2>
<h2>2</h2>
<h2>3</h2>
</root>
以上的XPath會返回這些元素:
<h2>2</h2>
<h2>3</h2>
//h2[position() > n]
當然你想要的任何實際值代替n ...
找到正確的答案,這爲我的作品:
//descendant::h2[position()>n
如果我想獲得第n個元素後m個元素,然後
//descendant::h2[position()>n and position()<last()-m]
請參閱我的示例以獲取更簡短的方法。關於你在這裏的做法,在兩種情況下都不需要在開始時使用斜線。 – JLRishe
顯示實際的XML,請 – dirkk