【问题标题】:Xpath select following (number) sibling inside anchor helpXpath 在锚帮助中选择以下(数字)同级
【发布时间】:2011-01-16 13:00:39
【问题描述】:

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

在页面上是这样的:

[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(.,'[')]] 来选择当前页面,但括号在锚点之外而不是在里面。哎呀!?

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

【问题讨论】:

    标签: xpath next siblings


    【解决方案1】:

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

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

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-09
      • 2015-12-29
      • 2012-04-25
      相关资源
      最近更新 更多