如果我有
<div>
<a>
<table>
<tr>
<td value="val">
如果我想选择包含 td
和 value="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/