XPath怎么选择所有祖先节点 ancestor轴用法

夜婷大大_3414

夜婷大大_3414

2026-01-02

893人浏览

原创

ancestor轴选取当前节点所有祖先节点(不含自身),ancestor-or-self包含自身;常与谓词、位置索引、属性匹配联用,结果按文档顺序排列。

xpath怎么选择所有祖先节点 ancestor轴用法

XPath 中用 ancestor 轴可以选中当前节点的所有祖先节点(即父节点、祖父节点、曾祖父节点……直到根节点),不包括自己。

ancestor轴的基本语法

格式为:axis::node-test,其中 ancestor 是轴名,node-test 用来筛选祖先节点的类型或名称。

  • //div/ancestor::*:选取所有 div 元素的所有祖先节点(任意元素)
  • //input/ancestor::form:只选取 input 的 form 类型祖先(最近的 form 及其更上层的 form,如果嵌套多层)
  • //span/ancestor::*[1]:选取 span 的直接父节点(第一个祖先)

ancestor和ancestor-or-self的区别

ancestor 不包含当前节点;而 ancestor-or-self 包含当前节点本身。

  • //p/ancestor::div → 只找 p 上面的 div 祖先
  • //p/ancestor-or-self::div → 如果 p 自己就是 div,也会被选中;否则等同于 ancestor::div

常用配合用法

经常和谓词 []、位置索引、属性匹配一起使用:

用于自动切换项目中适合的node 版本
用于自动切换项目中适合的node 版本

根据 package.json 中的 engines 字段自动检测 Node.js 版本需求,未安装 nvm 时自动安装并切换至对应版本。支持 Windows、macOS、Linux。适用于 Node.js 项目开发、版本切换和环境配置。

下载
  • //button[@id='submit']/ancestor::div[@class='modal']:找 ID 为 submit 的 button 所在的、class 为 modal 的 div 祖先
  • //a/ancestor::*[position() :取 a 的前三个祖先(父、祖父、曾祖父)
  • //img/ancestor::article:快速定位图片所在的 article 容器(常用于内容提取)

注意点

ancestor 轴返回的是从**直接父节点开始,向上到根节点的路径上的所有匹配节点**,顺序是自近到远(即父节点在前,根节点在后)。但 XPath 1.0 中结果顺序是文档顺序(从上到下),实际使用中建议用 [1] 或 last() 明确取值,避免依赖默认顺序。

不复杂但容易忽略。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

node 排列

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
class在c语言中的意思
class在c语言中的意思

在C语言中,"class" 是一个关键字,用于定义一个类。想了解更多class的相关内容,可以阅读本专题下面的文章。

2024.01.03

4296

7

python中class的含义
python中class的含义

本专题整合了python中class的相关内容,阅读专题下面的文章了解更多详细内容。

2025.12.06

306

9

CSS position定位有几种方式
CSS position定位有几种方式

有4种,分别是静态定位、相对定位、绝对定位和固定定位。更多关于CSS position定位有几种方式的内容,可以访问下面的文章。

2023.11.23

352

4

点击input框没有光标怎么办
点击input框没有光标怎么办

点击input框没有光标的解决办法:1、确认输入框焦点;2、清除浏览器缓存;3、更新浏览器;4、使用JavaScript;5、检查硬件设备;6、检查输入框属性;7、调试JavaScript代码;8、检查页面其他元素;9、考虑浏览器兼容性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.11.24

894

4

Uvicorn 报错与问题解决教程
Uvicorn 报错与问题解决教程

本专题汇总了Uvicorn服务器常见问题与报错解决的教程合集,涵盖启动失败、端口占用、模块导入错误、事件循环冲突及热重载失效等典型故障的排查思路。同时整理了多进程与Worker配置、SSL/HTTPS证书报错、跨域与代理配置等实战解决方案,助你快速定位并解决Uvicorn运行中的各类问题。

2026.11.02

0

14

Uvicorn使用教程
Uvicorn使用教程

本专题汇总了Uvicorn使用教程与启动运行指南,涵盖其作为Python ASGI服务器的定位与特点,以及命令行启动(uvicorn main:app --reload)、参数配置(host/port/workers)、程序内嵌运行与Gunicorn结合部署等核心用法。同时整理了热重载调试、日志配置与生产环境部署优化等技巧,助你快速掌握Uvicorn的运行与配置。

2026.11.02

0

17

Uvicorn安装配置教程
Uvicorn安装配置教程

本专题汇总了Uvicorn的安装配置教程与部署指南,涵盖通过pip安装Uvicorn、启动FastAPI/Starlette应用、开发模式热重载(--reload)及多进程工作模式配置等核心操作。同时整理了结合Gunicorn的生产部署方案、HTTPS与反向代理配置及性能调优技巧,助你快速完成Uvicorn服务的安装与上线部署。

2026.11.02

0

17

Vite 项目如何打包和部署
Vite 项目如何打包和部署

Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。

2026.10.28

100

16

Vite 如何搭配 Vue.js
Vite 如何搭配 Vue.js

Vite搭配Vue.js专题汇集创建Vue 3项目、配置开发环境、路径别名、Vue插件、代理、多环境构建与调试的已审核文章,帮助读者完成从初始化到日常开发的配置。

2026.10.28

80

15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
WebSocket手册
WebSocket手册

共0课时 | 0人学习

HTML5/CSS3/JavaScript/ES6入门课程
HTML5/CSS3/JavaScript/ES6入门课程

共102课时 | 11万人学习

前端基础到实战(HTML5+CSS3+ES6+NPM)
前端基础到实战(HTML5+CSS3+ES6+NPM)

共162课时 | 28.9万人学习