Коллекция XPATH 2.0 () с "? Select =" (в eXist-db / XQuery) - PullRequest
0 голосов
/ 12 ноября 2018

Использование XPath 2.0 в eXist 4.4 и XQuery.

У меня есть ряд документов в каталоге eXist-db /db/apps/deheresi/data, которые я хочу получить с помощью collection(), но использую подстановочный знак или предикат для фильтрации документов с конкретными именами.

Например, я хотел бы получить документы, которые начинаются с ABC и заканчиваются .xml. Я думал, что подстановочный знак вроде ?select=ABC*.xml сработает, но он не возвращает ожидаемых результатов.

collection("/db/apps/deheresi/data?select=ABC*.xml")

Я также пытался применить комбинацию starts-with и ends-with, но безуспешно. Я, без сомнения, упускаю из виду что-то простое.

Заранее спасибо.

1 Ответ

0 голосов
/ 12 ноября 2018

Один способ сделать это существует

xquery version "3.1";
(: get document names :)
 let $doc-names := for $n in collection('/db/apps/deheresi/data')
 return
    util:document-name($n)

(: apply filter :)
 for $f in $doc-names[matches(., '^ABC.*\.xml$')]
 return
  $f
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...