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

如何从XPath查询返回的序列中提取指定匹配的属性值

如何在XQuery中捕获指定路径值

你当前的XQuery查询返回了三个文件系统路径,要单独提取/etc/readme/file-permission到变量中,可以通过以下几种方式实现:

先纠正原查询的笔误:原代码中的/string(fn:ends)是错误写法,正确的字符串转换应该使用fn:string(),否则会触发函数不存在的报错。

方法一:精准匹配目标路径

直接在路径筛选阶段添加等值判断,确保只获取指定路径:

xquery version "1.0-ml";
let $bkp_location := xdmp:filesystem-directory("/etc/")//dir:entry/dir:pathname[fn:string() = "/etc/readme/file-permission"]/fn:string()
return $bkp_location

方法二:按路径特征过滤

如果目标路径有固定标识(比如包含/readme/),可以用fn:contains做模糊匹配:

xquery version "1.0-ml";
let $bkp_location := xdmp:filesystem-directory("/etc/")//dir:entry/dir:pathname[fn:contains(fn:string(), "/readme/")]/fn:string()
return $bkp_location

方法三:通过位置索引提取

如果返回结果的顺序固定(目标路径是第二个),可以用位置索引直接取值:

xquery version "1.0-ml";
let $bkp_location := (xdmp:filesystem-directory("/etc/")//dir:entry/dir:pathname/fn:string())[2]
return $bkp_location

注意事项

  • 精准匹配稳定性最高,适合路径固定的场景;
  • 特征过滤适合路径有规律但可能存在细微变化的场景;
  • 位置索引依赖返回结果的排序顺序,文件系统的排序规则可能影响结果,仅在顺序确定时使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 09:43:11