2013-01-08 25 views
0

我使用下面的XQuery查詢文件的集合:多收集功能使用XQuery

for $files in collection("/data?select=*data*.xml") 

目錄中的每個文件都有一個特定的名字,這使我認識到它。我用這個作爲標識符,這是我檢索如下:

let $file-id := tokenize(base-uri($files), "/")[last()] 

$文件-ID變量如下特定圖案:ABC-1234。前八個字符是相關的,所以我把它們用下面的變量獲取:

let $file-link-id := substring($file-id, 1, 8) 

現在,我的文件,我想查詢的另一個集合。這些文件在名稱中遵循相同的模式,因爲它們包含連接的信息。

如何使用$ file-link-id在第二個集合中選擇正確的文件?

我想我將不得不將其包含在第二個收集條款中,沿?select=$file-link-id.xml行,但我不確定如何做到這一點。

回答

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"), ''))