0

次の XQuery を使用して、ファイルのコレクションを照会しています。

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

ディレクトリ内の各ファイルには特定の名前が付けられているため、それを認識できます。これを識別子として使用し、次のように取得します。

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

$file-id変数は、abc-1234 という特定のパターンに従います。最初の 8 文字が関連するので、以下の変数を使用して取得します。

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

ここで、クエリを実行するファイルの別のコレクションがあります。これらのファイルには関連情報が含まれているため、名前は同じパターンに従います。

$file-link-idを使用して 2 番目のコレクションで正しいファイルを選択するにはどうすればよいですか?

の行に沿って、2番目のコレクション句に含める必要があると?select=$file-link-id.xml思いますが、これを行う方法がわかりません。

4

1 に答える 1

1

あなたの問題は非常に簡単に解決できるように見えるので、ここで間違っていると仮定すると、問題のステートメントを明確にすることができるかもしれません(したがって、私はあなたの問題を誤解した可能性があります)。

したがって、正しいものが$file-link-idあり、それを文字列として使用したいと考えています。xquery プロセッサが XQuery 3.0 をサポートしている場合は、2 つのパイプを使用できます。

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 に答える