XPATH 2.0 collection() with "?select="(在 eXist-db/XQuery 中)
XPATH 2.0 collection() with "?select=" (in eXist-db / XQuery)
在 eXist 4.4 和 XQuery 中使用 XPath 2.0。
我在 eXist-db 目录 /db/apps/deheresi/data
中有一系列文档,我想用 collection()
检索这些文档,但使用通配符或谓词来过滤特定命名的文档。
例如,我想获取以ABC
开头并以.xml
结尾的文档。我认为 ?select=ABC*.xml
这样的通配符会起作用,但它没有返回预期的结果。
collection("/db/apps/deheresi/data?select=ABC*.xml")
我也尝试过应用 starts-with
和 ends-with
的组合,但没有成功。毫无疑问,我在这里忽略了一些简单的事情。
提前致谢。
现有一种方法
xquery version "3.1";
(: get document names :)
let $doc-names := for $n in collection('/db/apps/deheresi/data')
return
util:document-name($n)
(: apply filter :)
for $f in $doc-names[matches(., '^ABC.*\.xml$')]
return
$f
在 eXist 4.4 和 XQuery 中使用 XPath 2.0。
我在 eXist-db 目录 /db/apps/deheresi/data
中有一系列文档,我想用 collection()
检索这些文档,但使用通配符或谓词来过滤特定命名的文档。
例如,我想获取以ABC
开头并以.xml
结尾的文档。我认为 ?select=ABC*.xml
这样的通配符会起作用,但它没有返回预期的结果。
collection("/db/apps/deheresi/data?select=ABC*.xml")
我也尝试过应用 starts-with
和 ends-with
的组合,但没有成功。毫无疑问,我在这里忽略了一些简单的事情。
提前致谢。
现有一种方法
xquery version "3.1";
(: get document names :)
let $doc-names := for $n in collection('/db/apps/deheresi/data')
return
util:document-name($n)
(: apply filter :)
for $f in $doc-names[matches(., '^ABC.*\.xml$')]
return
$f