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

如何使用单条XPath语法获取name属性为Z*NAME的字段数据?

解决XPath匹配Z类名称字段的问题

嘿,我明白你遇到的问题了——你想用XPath选中所有name属性以Z开头且以NAME结尾的<field>元素,但直接用/fields/field[@name="Z*NAME"]是行不通的,因为XPath里的*是节点通配符,不是字符串的模糊匹配符哦。下面给你两种不同XPath版本的解决方案:

XPath 1.0 兼容方案

如果你的环境只支持XPath 1.0(很多旧系统或工具默认是这个版本),可以结合starts-with()函数和字符串截取来实现:

/fields/field[starts-with(@name, 'Z') and substring(@name, string-length(@name) - string-length('NAME') + 1) = 'NAME']
  • starts-with(@name, 'Z'):确保name属性以Z开头
  • substring(@name, string-length(@name) - string-length('NAME') + 1):截取name属性的最后4个字符(因为NAME是4个字符),然后判断是否等于NAME

XPath 2.0+ 简洁方案

如果你的环境支持XPath 2.0或更高版本(比如现代的XML编辑器、XSLT 2.0等),可以用matches()函数结合正则表达式,写法更直观:

/fields/field[matches(@name, '^Z.*NAME$')]
  • ^Z:匹配以Z开头的字符串
  • .*:匹配任意数量的任意字符(包括0个)
  • NAME$:匹配以NAME结尾的字符串

这两个表达式都能从你的XML中精准选出Z01NAME、Z02NAME、Z03NAME这三个字段,试试看吧!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:33:13