0

我正在使用以下 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-link-id在第二个集合中选择正确的文件?

我假设我必须将它包含在第二个集合子句中,类似于?select=$file-link-id.xml,但我不确定如何执行此操作。

4

1 回答 1

1

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

所以你有你的正确$file-link-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"), ''))
于 2013-01-08T16:38:35.567 回答