1

这是一个例子:

<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] 元素呢?

4

1 回答 1

0

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

我对这个 XPath 进行了一些试验,//tr[td[1] and not(./td[1] = preceding::*/td)]/td[2]应该可以满足您的要求。

所以我选择了一个之前不匹配tr的第一个。td然后tr我们选择第二个td元素。

有了那个 xPath,我就有了你想要的输出。

于 2013-10-24T12:08:29.557 回答