use*_*492 3 xpath siblings next
如果我不清楚解释清楚,请提前抱歉.我会尽力澄清我想要做的事情.没有进一步的假设...假设您在页面上有一系列数字(仅由空格分隔),其中括号表示您当前所在的页面.
它在页面上看起来像这样:
[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>
Run Code Online (Sandbox Code Playgroud)
我只是想根据当前选择下一页编号.我想我需要使用某种形式的后续兄弟,但我想出的只是// tr/td/a/follow-sibling :: a [1],这显然是不正确的.它在第1页上选择2但在第2页时不按预期选择3.我本来试图使用[text()[contains(.,'[')]]来选择当前页面但是括号在锚点之外而不是在内部.伊克!?
如果你能解释思考过程和你的解决方案而不是仅仅粘贴答案,将不胜感激.期待您的帮助.
2之后的下一页将通过以下方式找到:
//tr/td/a[.='2']/following-sibling::a[1]
Run Code Online (Sandbox Code Playgroud)
首先,我们根据其字符串内容选择当前页面//tr/td/a[.='2']
,然后从中选择第一个后续兄弟.
要在不知道当前页面的情况下执行此操作,我们将选择"]"后面的元素.
//tr/td/text()[']'=normalize-space(.)]/following-sibling::a[1]
Run Code Online (Sandbox Code Playgroud)
如果没有当前页面,我们将默认为第一个元素.
//tr/td/( text()[']'=normalize-space(.)]/following-sibling::a | a )[1]
Run Code Online (Sandbox Code Playgroud)