如何使用其父级找到包含XPath的元素?

时间:2013-11-07 18:52:36

标签: xpath

我需要在几个相似行的表中的行中的“td”元素中获取“a”元素。问题是我只有'john'这个名字。我怎样才能找到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>

3 个答案:

答案 0 :(得分:3)

怎么样:

//a[ancestor::tr[td/@name = 'john']]

答案 1 :(得分:3)

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

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

这样做:

  • //
    • 从任何深度
  • td
    • 找到td元素
  • [@name="john"]
    • name属性等于'john'
  • /following-sibling::
    • 现在查看以下兄弟元素
  • td
    • 并找到另一个td
  • [1]
    • 获得第一个
  • /a
    • 并获取a元素
    • 的子元素

答案 2 :(得分:1)

我会做什么:

//*[@name="john"]/../td/a/@id