Как получить каталог документов из URI документа в MarkLogic? - PullRequest
0 голосов
/ 08 февраля 2019

У меня есть список URI с разными каталогами.Это способ извлечь все отличные каталоги из URI в MarkLogic?

xdmp:directory используется для разных целей.

Example- 
let $uri := "/test/abc/somepath/abc.xml"
Output should be- "/test/abc/somepath/"

Любые предложения ??

Ответы [ 2 ]

0 голосов
/ 08 февраля 2019

Существует служебная функция, которая делает это:

import module namespace util="http://marklogic.com/xdmp/utilities" at "/MarkLogic/utilities.xqy";
util:basepath("/test/abc/somepath/abc.xml")

Используется fn:replace плюс небольшая логика в краевых случаях.

0 голосов
/ 08 февраля 2019

Для этого нет встроенной функции, но вы можете проанализировать значение каталога из URI несколькими различными способами, в зависимости от того, насколько строгим вы хотите быть.

fn:string-join(fn:tokenize('/test/abc/somepath/abc.xml', '/')[1 to last()-1], '/')||'/'

Или, если вы толькохотите сопоставить, когда строка ведет с /:

replace('/test/abc/somepath/abc.xml', '^((/[^/]+)*/)[^/]*$', '$1')
...