html - 如何使用 XPath 选择父节点?
问题描述
如果我有
<div>
<a>
<table>
<tr>
<td value="val">
如果我想选择包含 a 的 a td
,value="val"
我该怎么做?
我已经测试过:
//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 现在可以工作了,但是当页面有任何更改时,例如:如果 table 被移动到 div 中,那么这个 xpath 将会中断。
//td[@value="val"]/parent::tr/parent::table/parent::a
就我个人而言,至少在这种情况下,我更喜欢第二个选项,因为a
它没有任何特定属性。并将ancestor::a
选择任何作为 td 祖先的链接。
推荐阅读
- javascript - 为什么注册用户未在 Firebase 中进行身份验证?为什么用户不能将产品添加到数据库 Firebase?
- php - 在 Codeigniter 中选择多个下拉菜单
- javascript - 读取文件时行之间的延迟[错误]
- c# - 将表格放在其他窗口的后面
- flutter - 自定义暗光主题共享首选项应用栏和底部导航。酒吧。不能在颤振中工作
- python - Pycaret models() 方法抛出 NameError
- postgresql - 数据库创建错误:访问被拒绝 Odoo 14
- c - C如何计算int和float数据类型混合
- django - (Django Rest Framework) 在rest_framework_simplejwt.tokens 中使用RefreshToken 类时出错
- node.js - 如何处理转换 Node.js 流中的“结束”/“关闭”事件?