2

我需要从几个相似行的表中的一行中获取“td”元素内的“a”元素。问题是我只有“约翰”这个名字。如何找到 john td -> 获取父级“tr”-> 然后在 XPath 中获取“a”?

代码示例:

<?xml version="1.0" encoding="UTF-8"?>
<html>
  <table>
    ...
    <tr id='1'>
      <td name='john'>
      </td>
      <td>
        <a id='clickable'/>
      </td>
      <td>
      </td>
    </tr>
    ...
  </table>
</html>
4

3 回答 3

5

我会这样写这个 XPath 表达式:

//td[@name="john"]/following-sibling::td[1]/a

这样做:

  • //
    • 从任何深度
  • td
    • 找到一个td元素
  • [@name="john"]
    • 属性name等于'john'
  • /following-sibling::
    • 现在查看其以下兄弟元素
  • td
    • 并找到另一个td
  • [1]
    • 得到第一个
  • /a
    • 并得到它的子a元素
于 2013-11-07T19:01:59.287 回答
3

怎么样:

//a[ancestor::tr[td/@name = 'john']]
于 2013-11-07T18:58:06.997 回答
2

我会做什么:

//*[@name="john"]/../td/a/@id
于 2013-11-07T19:04:20.003 回答