В XQuery, с eXist, как получить дочерние коллекции текущей коллекции?
Эта проблема
У меня есть запрос, который выполняется eXist через REST API, и он помещается в коллекцию, на которой он должен работать, например /db/foo
или же /db/bar
, В запросе я хотел бы получить дочерние коллекции текущей коллекции. То есть: если опубликовано /db/foo
Я хотел бы, чтобы запрос возвращал что xmldb:get-child-collections('/db/foo')
вернется; если опубликовано /db/bar
Я хотел бы, чтобы запрос возвращал что xmldb:get-child-collections('/db/bar')
вернется. Но, конечно, я не хочу, чтобы путь текущей коллекции был жестко задан в запросе.
Что я пробовал
xmldb:get-child-collections('.')
, неудачно,.
eXist не понимается как "текущая коллекция".- Ищем функцию, которая возвращает путь к текущей коллекции, например
pwd
был бы в раковине, но я не мог найти один.
1 ответ
Решение
С REST API вы можете использовать request:get-path-info()
чтобы получить путь к "текущей коллекции". Например:
- Если вы делаете GET или POST для
http://www.my-site.com/exist/rest/db/my-collection
, request:get-path-info()
вернусь/db/my-collection
Это именно та часть пути, которая вас интересует.