XPATH 2.0 collection(),带有“?select =“(在eXist-db / XQuery中)

时间:2018-11-12 14:47:02

标签: xpath exist-db xquery-3.0

在eXist 4.4和XQuery中使用XPath 2.0。

我要使用/db/apps/deheresi/data检索eXist-db目录collection()中的一系列文档,但是使用通配符或谓词来过滤特定名称的文档。

例如,我想获取以ABC开始并以.xml结尾的文档。我认为?select=ABC*.xml这样的通配符会起作用,但不会返回预期的结果。

collection("/db/apps/deheresi/data?select=ABC*.xml")

我还尝试将starts-withends-with组合使用,但没有成功。我无疑在这里忽略了一些简单的事情。

谢谢。

1 个答案:

答案 0 :(得分:1)

存在这种情况的一种方法

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