You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

XPath选取首/末节点时是否必须显式调用position()函数?

问题解答

你设想的select="osm/way/nd[[1] or [last()]]语法并不符合标准XPath规范,不存在这类双中括号组合位置谓词的用法。

不过确实存在不需要显式调用position()函数的等效实现,你可以用XPath的节点集并集运算符|拼接两个合法的位置筛选路径,写法如下:

select="osm/way/nd[1] | osm/way/nd[last()]"

原理解释

  • XPath中[数值]格式的谓词本身就是[position() = 数值]的语法糖,本身就不需要显式声明position()函数
  • 并集运算符|会合并两个路径返回的节点结果,且自动完成节点去重,最终返回的节点集和osm/way/nd[position() = 1 or position() = last()]的查询结果完全一致。

内容的提问来源于stack exchange,提问作者DaveF

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 09:15:03