html - 如何使用 XPath 选择父节点?

标签 html xml xpath

如果我有

<div>
  <a>
    <table>
      <tr>
        <td value="val">

如果我想选择包含 tdvalue="val" 的 a,我该怎么做?

我测试过:

//td[@value="val"]

但是我获取的是td节点,我想获取的是a节点。我如何使用 XPath 实现这一点?

最佳答案

您可以使用以下任一选项。

//td[@value="val"]/ancestor::a
^
td with value val
                   ^
                    ancestor link

在这种情况下首选 xpath

//a[.//td[@value="val"]]
^
Get me any link which have td with value as val.

下面的 xpath 现在可以工作了,但是当页面有任何变化时,例如:如果表被移动到一个 div 中,那么这个 xpath 将会中断。

//td[@value="val"]/parent::tr/parent::table/parent::a

在这种情况下,我个人至少更喜欢第二个选项,因为 a 没有任何特定属性。 ancestor::a 将选择作为 td 祖先的任何链接。

关于html - 如何使用 XPath 选择父节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58062965/

相关文章:

html - 如何将一段文本与一堆可点击的 Sprite 图像对齐在同一行?

javascript - 无法取消 jquery 中的表单提交

xml - Delphi 和 XML CDATA

xml - XPath运算符:某些子元素包含子字符串

python - 如何使用 Selenium 将鼠标悬停在多个元素上并通过 Python 提取文本

php xpath问题

html - 使图像相对于文本长度

javascript - JS : Specifying current element in the menu

c# - 在C#中读取一个xml元素并将元素的新值写回xml

javascript - XML .attributes 不起作用