我得到的结果如下所示,但我想通过Xquery单独提取所有文件名。那么,单独提取文件的最佳方法是什么?
db/Staff_Member1.xml db/Staff_Member2.xml db/Staff_Member3.xml db/Staff_Member4.xml db/Staff_Member5.xml db/Staff_Member6.xml db/Staff_Member7.xml db/Staff_Member8.xml db/Staff_Member9.xml db/Staff_Member10.xml db/Staff_Member11.xml db/Staff_Member12.xml db/Staff_Member13.xml db/Staff_Member14.xml db/Staff_Member15.xml
答案 0 :(得分:2)
鉴于这是一些XQuery返回的字符串序列,我会在路径分隔符/
上进行标记化,然后继续进行最后一段。为每个字符串运行tokenize:
let $path := 'db/Staff_Member1.xml'
let $basename := tokenize($path, '/')[last()]
return $basename
正则表达式不是必需的,只会使事情变得更复杂,并且只能从XQuery 3.0开始,因为XQuery 1.0可以验证字符串是否匹配,而不是返回匹配的子字符串。
答案 1 :(得分:2)
如果您只想要路径中的文件名,可以使用
replace($your-string, ".*/(.*)", "$1")
这适用于XQuery 1.0或3.0