2017-10-05 15 views
0

X-QueryまたはNode-JSクライアントAPIに、Marklogic 9のディレクトリまたは階層ビューのリストを取得する関数はありますか?marklogicの階層的なディレクトリ構造

+0

あなたがCTSを使用することができます:XQueryでのURI()関数を - しかし、あなたが望む最終的な出力が何であるかを明確にすることができますか? – Tamas

+0

私はフロントエンドをフォルダ階層構造のようにデザインしようとしていますので、ディレクトリやディレクトリ構造のリストを取得すれば、それらを渡してその構造をフロントエンドに作成できます –

答えて

1

MarkLogicのディレクトリは、ドキュメントURIに反映された慣習に過ぎません。

ディレクトリに対応するリソースがデータベースに存在しません(WebDavの場合は例外です)。

タマスは彼のコメントにヒントとして、あなたは

  • にXQueryまたはJavaScript関数を書くことができますがURIに/上のURIトークン化
  • ソート
  • ステップURI辞書からURIを読みます
  • 階層を構築するステップ上のグループ

助けを借りて、

0

役立つはずdeveloper.marklogic.comのレシピがあります:http://developer.marklogic.com/recipe/list-directory-count

declare function local:map-uris($uris as xs:string*) 
{ 
    let $map := map:map() 
    let $_ := 
    for $uri in $uris 
    let $toks := fn:tokenize($uri, "/") 
    for $t at $i in fn:subsequence($toks, 1, fn:count($toks) - 1) 
    let $key := fn:string-join($toks[1 to $i], "/") || "/" 
    let $count := (map:get($map, $key), 0)[1] 
    return map:put($map, $key, ($count + 1)) 
    return $map 
}; 

local:map-uris(cts:uris()) 
関連する問題