XPath无法选择正确的节点

时间:2013-10-24 11:14:40

标签: xpath adhoc

以下是一个例子:

<html>
  <table>
    <tbody>
      <tr>
        <td>07 Oct 13</td>
        <td>a</td>
      </tr>
      <tr>
        <td>07 Sep 13</td>
        <td>b</td>
      </tr>
      <tr>
        <td>07 Sep 13</td>
        <td>c</td>
      </tr>
    </tbody>    
  </table>    
</html>

因此,如果td [1]具有唯一日期,我需要选择td [2]元素。在这个例子中,我们必须只获得{a,b},因为元素“b”和“c”具有相同的日期。我只能得到独特的日期:

//table//td[(position() = 1 and not(. = preceding::*/td))]

Output: {07 Oct 13, 07 Sep 13}

但是我怎样才能获得td [2]元素?

1 个答案:

答案 0 :(得分:1)

如前面评论中所述,我会选择匹配的父元素,然后从中获取有趣的子节点。

我尝试了一下这个XPath //tr[td[1] and not(./td[1] = preceding::*/td)]/td[2]应该做你想做的事。

因此,我选择tr之前未与之匹配的td tr。在td中,我们选择第二个{{1}}元素。

使用该xPath我有你想要的输出。