2010-02-13 64 views
3

對不起,如果我不明確解釋這一點。我會盡我所能來澄清我正在嘗試做什麼。毫不費力...假設您在頁面上有一系列數字(僅用空格分隔),其中的括號表示您當前的頁面。Xpath選擇以下(數字)在錨幫助內的兄弟

它看起來像這樣在頁面上:

[1] 2 3

的HTML看起來像這樣:

<tr> 
<td> 

[<a href='link1.php'>1</a>] <a href='link2.php'>2</a> <a href='link3.php'>3</a> 

</td> 
</tr> 

我只是想選擇基於下一個頁碼目前。我想我需要使用某種形式的跟隨兄弟姐妹,但我想出的所有形式都是// tr/td/a/following-sibling :: a [1],這顯然是不正確的。它按照預期在頁面1上選擇2,但在頁面2上不選擇3。我會嘗試使用[text()[contains(。,'[']]]來選擇當前頁面,但括號不在錨點之內,而不是在內部。伊克!?

如果你能解釋思維過程和解決方案,而不只是粘貼答案,那將是非常值得讚賞的。期待您的幫助。

回答

6

2之後的下一個頁面,會發現:

//tr/td/a[.='2']/following-sibling::a[1] 

首先,我們選擇基於其字符串內容//tr/td/a[.='2']當前頁面,並從中選擇了先上後下,兄弟姐妹。

爲了在不知道當前頁面的情況下做到這一點,我們將選擇「]」後面的一個元素。

//tr/td/text()[']'=normalize-space(.)]/following-sibling::a[1] 

而如果沒有當前頁面,我們將默認爲第一個元素。

//tr/td/(text()[']'=normalize-space(.)]/following-sibling::a | a)[1] 
+0

奇妙的作品,非常有意義。非常感謝。 – user272492 2010-02-13 18:57:59