当前位置: 首页 > news >正文

xpath选择器

文章目录

  • 二、使用步骤
    • 1.xpath获取父节点方式
    • 2.document.evaluate()

二、使用步骤

1.xpath获取父节点方式

获取这个div节点的父节点
//div[@aria-label=“Like”]/parent::*

获取父节点的兄弟节点的第二个
//div[@aria-label=“Like”]/parent::/following-sibling::[2]

获取某个节点的祖先是某个属性的节点
//div[@aria-label=“Like”]/ancestor::div[@role=“article”]/div

通过某个节点 获取共同祖先下的另外一个节点
//div[@aria-label=“Like”]/parent::*//ancestor::div[@role=“article”]//div[@data-ad-comet-preview=“message”]//span//div[@dir=“auto”]

2.document.evaluate()

document.evaluate() 是一个在浏览器环境中执行 XPath 表达式的方法
返回一个 XPathResult 对象,该对象包含了表达式执行的结果。
这个方法可以执行几乎任何 XPath 查询,并且可以返回不同类型的结果,

// 使用 document.evaluate() 方法执行 XPath 表达式
const result = document.evaluate(xpathExpression, document, null, XPathResult.ANY_TYPE, null);

xpathExpression:
一个字符串,是你想要执行的xpath表达式。

contextNode
参数指定了xpath表达式的上下文节点。 表达式从这个节点开始执行。
大多数情况下会传入document作为上下文。
如果想要查询文档的某个特定部分,可以传入一个更具体的节点。

namespaceResolver
是一个函数或null
用于解析xpath表达式中出现的命名空间前缀。 如果文档使用了XML命名空间,并且xpth表达式需要处理这些命名空间,就需要提供这个参数;对于不涉及命名空间的普通html文档,可以写null

resultType
该参数指定了期望evaluate()方法返回的结果类型。
XPathResult.ANY_TYPE 表示没有指定特定的结果类型,让浏览器自己决定返回结果。
其他可能的值: XPathResult.NUMBER_TYPE, XPathResult.STRING_TYPE, XPathResult.BOOLEAN_TYPE, XPathResult.UNORDERED_NODE_ITERATOR_TYPE 等,这些值分别对应不同的返回类型。

result
可以是一个已经存在的XPathResult 对象,用于存放结果,或 null
如果传入一个已存在的XPathResult对象,evaluate() 方法会把新的结果放在这个对象中。
如果传入null ,方法会创建一个新的XPathResult对象


在调用 document.evaluate() 之后,会得到一个 XPathResult 对象。
可以使用 iterateNext() 方法来遍历节点集合(如果结果是一个节点集合)

或者使用 singleNodeValue 属性来获取单个节点(如果结果是单个节点)。返回的结果类型取决于你的XPath表达式和你指定的 resultType。


相关文章:

  • jax 备忘录
  • 多表查询之连接查询
  • 微服务划分的思考
  • [陇剑杯 2021]内存分析(问1)
  • 你学会了些什么220622?--搭建UI自动化
  • 论文速报《Being-0:结合视觉语言模型与模块化技能的人形机器人智能体》
  • 53、Spring Boot 详细讲义(十)(Spring Boot 高级主题)
  • 【Linux】调试工具gdb的认识和使用指令介绍(图文详解)
  • Ubuntu下展锐刷机工具spd_dump使用说明
  • 消息中间件RabbitMQ:简要介绍及其Windows安装流程
  • 2025 活体识别+人脸认证工具类【阿里云api,需要先申请试用】
  • 8. ROS中常见命令
  • VS Code + GitHub:高效开发工作流指南
  • 项目实战 -- 发布管理
  • 考研系列-计算机网络-第四章、网络层
  • LeetCode算法题(Go语言实现)_54
  • java/python——两个行为(操作)满足原子性的实现
  • Web前端:Overflow属性(超出裁剪属性)
  • vllm+vllm-ascend本地部署QwQ-32B
  • MYSQL之基础认识(卸载安装登录, 基本概念)
  • 体坛联播|利兹联、伯恩利重返英超,北京淘汰北控队晋级四强
  • 美股再遭重挫,标普500指数11个板块全线溃败
  • 服务业扩大开放,金融、医疗等多领域明确155项试点任务
  • 从南宋遗韵到海派风情,解码江南服饰美学基因
  • 天工摘得全球首个人形机器人半马冠军:中国机器人产业正努力跑向人机共生社会
  • 祥源文旅:2024年营业收入约8.64亿元,今年旅游经济总体预期更为乐观