Collections 使用具有多个收集函数的XQuery

Collections 使用具有多个收集函数的XQuery,collections,xquery,Collections,Xquery,我使用以下XQuery查询文件集合: for $files in collection("/data?select=*data*.xml") 目录中的每个文件都有一个特定的名称,这使我能够识别它。我将其用作标识符,检索方法如下: let $file-id := tokenize(base-uri($files), "/")[last()] $file id变量遵循某种模式:abc-1234。前八个字符是相关的,因此我使用以下变量获取它们: let $file-link-id := subst

我使用以下XQuery查询文件集合:

for $files in collection("/data?select=*data*.xml")
目录中的每个文件都有一个特定的名称,这使我能够识别它。我将其用作标识符,检索方法如下:

let $file-id := tokenize(base-uri($files), "/")[last()]
$file id变量遵循某种模式:abc-1234。前八个字符是相关的,因此我使用以下变量获取它们:

let $file-link-id := substring($file-id, 1, 8)
现在,我有另一个文件集合,我想查询它。这些文件在名称上遵循相同的模式,因为它们包含连接的信息

如何使用$file链接id在第二个集合中选择正确的文件


我想我必须在第二个collection子句中包含它,类似于
?select=$file-link-id.xml
,但我不确定如何做到这一点。

如果我在这里假设错误,也许你可以澄清你的问题陈述,因为你的问题似乎很容易解决(所以我可能误解了你的问题).

因此,您拥有正确的
$file链接id
,并希望将其用作字符串。如果您的xquery处理器支持xquery 3.0,则可以使用两个管道,即

for $files in collection("/data?select=" || $file-link-id || ".xml")
如果没有,请使用
string-join()

for $files in collection(string-join(("/data?select=", $file-link-id, ".xml"), ''))