3

如果我没有清楚地解释这一点,请提前道歉。我会尽力澄清我正在尝试做的事情。事不宜迟...假设您在页面上有一系列数字(仅由空格分隔),其中括号表示您所在的当前页面。

它在页面上看起来像这样:

[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>

我只是想根据当前选择下一个页码。我想我需要使用某种形式的following-sibling,但我想出的只是//tr/td/a/following-sibling::a[1],这显然是不正确的。它在第 1 页时选择 2,但在第 2 页时按预期选择 3。我会尝试使用 a[text()[contains(.,'[')]] 来选择当前页面,但括号在锚点之外而不是在里面。哎呀!?

如果您能解释思考过程以及您的解决方案,而不仅仅是粘贴答案,我们将不胜感激。期待您的帮助。

4

1 回答 1

6

2之后的下一页,将由以下人员找到:

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

首先,我们根据其字符串 content 选择当前页面//tr/td/a[.='2'],然后从那里选择第一个 follow-sibling。

要在不知道当前页面的情况下执行此操作,我们将改为选择“]”后面的 a 元素。

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

如果没有当前页面,我们将默认为第一个 a 元素。

//tr/td/( text()[']'=normalize-space(.)]/following-sibling::a | a )[1]
于 2010-02-13T18:13:31.523 回答