0

0

XPath怎么选择第一个和最后一个节点 position()和last()

星降

星降

发布时间:2026-01-03 11:54:10

|

942人浏览过

|

来源于php中文网

原创

XPath中选第一个节点用[1]或[position()=1],选最后一个必须用[last()];注意括号改变作用域,如(//a)[last()]取全部a中最后一个,而//a[last()]取各父元素下最后一个a。

xpath怎么选择第一个和最后一个节点 position()和last()

XPath 中选择第一个和最后一个节点,主要靠 position()last() 这两个函数配合位置谓词(即方括号 [])来实现。关键不是单独用它们,而是用在路径末尾的条件过滤中。

选第一个节点:用 [position() = 1] 或简写 [1]

这是最常用也最推荐的方式。XPath 支持两种等价写法:

  • //div[@class="item"][1] —— 简洁直观,直接取匹配到的所有 div[@class="item"] 中的第 1 个
  • //div[@class="item"][position() = 1] —— 语义更明确,但写法稍长

⚠️ 注意:[1] 是针对当前路径“结果集”的序号,不是文档中全局第 1 个。比如 //ul/li[1] 表示每个 ul 下的第一个 li(可能返回多个),而 (//ul/li)[1] 才是整个文档中第一个 li(加括号改变优先级)。

选最后一个节点:必须用 [last()]

不能写成 [position() = last()](虽然语法合法,但冗余),直接用 [last()] 更清晰高效:

Motiff
Motiff

Motiff是由猿辅导旗下的一款界面设计工具,定位为“AI时代设计工具”

下载
  • //div[@class="item"][last()] —— 取所有匹配节点中的最后一个
  • (//ul/li)[last()] —— 加括号确保是整个结果集的最后一个 li

? last() 返回的是当前上下文节点列表的总数量,所以 [last()] 就等于取索引为总数的那个节点(即末位)。

常见误区和细节

  • 别漏括号:想取“所有 a 标签中最后一个”,写 (//a)[last()];写成 //a[last()] 是每个父元素下最后一个 a
  • position() 从 1 开始计数,不是 0
  • last() 只能在谓词中使用,不能单独写 last() 当表达式
  • 如果结果为空,[1][last()] 都不返回任何节点,不会报错

基本上就这些。用熟 [1][last()] 这两个写法,再注意括号控制作用域,就能准确抓取首尾节点了。

相关专题

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

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

459

2024.01.03

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

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

7

2025.12.06

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

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

80

2023.11.23

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

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

80

2023.11.23

li是什么元素
li是什么元素

li是HTML标记语言中的一个元素,用于创建列表。li代表列表项,它是ul或ol的子元素,li标签的作用是定义列表中的每个项目。本专题为大家li元素相关的各种文章、以及下载和课程。

407

2023.08.03

php源码安装教程大全
php源码安装教程大全

本专题整合了php源码安装教程,阅读专题下面的文章了解更多详细内容。

150

2025.12.31

php网站源码教程大全
php网站源码教程大全

本专题整合了php网站源码相关教程,阅读专题下面的文章了解更多详细内容。

88

2025.12.31

视频文件格式
视频文件格式

本专题整合了视频文件格式相关内容,阅读专题下面的文章了解更多详细内容。

90

2025.12.31

不受国内限制的浏览器大全
不受国内限制的浏览器大全

想找真正自由、无限制的上网体验?本合集精选2025年最开放、隐私强、访问无阻的浏览器App,涵盖Tor、Brave、Via、X浏览器、Mullvad等高自由度工具。支持自定义搜索引擎、广告拦截、隐身模式及全球网站无障碍访问,部分更具备防追踪、去谷歌化、双内核切换等高级功能。无论日常浏览、隐私保护还是突破地域限制,总有一款适合你!

61

2025.12.31

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Django 教程
Django 教程

共28课时 | 2.7万人学习

Pandas 教程
Pandas 教程

共15课时 | 0.9万人学习

NumPy 教程
NumPy 教程

共44课时 | 2.7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号