Выберите документ как root контекст из базы данных BaseX по URI - PullRequest
0 голосов
/ 21 апреля 2020

Может быть не сложно, но я не могу найти правильную команду и синтаксис:

У меня есть открытая база данных BaseX, которая содержит несколько XML документов:

/document-uri()

выглядит так

/dirA/dirA1/x01.xml
/dirA/dirA1/x02.xml
/dirA/dirA2/x03.xml
/dirA/dirA3/dirA31/x04.xml
/dirA/dirA3/dirA31/x05.xml
/dirA/dirA3/dirA32/x06.xml
/dirB/dirB1/x07.xml
/dirB/dirB2/x08.xml
/dirC/dirC1/x09.xml
/dirC/dirC2/dirC11/x10.xml
/dirD/dirD1/dirD11/x11.xml
/dirE/dirE1/dirE11/x12.xml

Я ищу XQuery для выбора документа по URI и использования его в качестве контекста XPath, s.th. как это:

document("/dirA/dirA1/x01.xml")/root/foo

Еще один вариант был бы очень полезен: выберите все документы в пути к каталогу (рекурсивно:))

document("/dirA/dirA1/")/root/foo

1 Ответ

1 голос
/ 21 апреля 2020

Существует функция doc, поэтому doc('/dirA/dirA1/x01.xml') должен выбрать документ. Существует также функция collection, которая, вероятно, позволяет выбрать collection('/dirA/dirA1'), точное использование функции сбора зависит от процессора XQuery и, например, от того, как вы настроили свою БД в BaseX.

Так что в основном функции doc и collection должны помочь в XQuery. Только XSLT имеет функцию с именем document, которую вы использовали в своих примерах.

...