Выбрать документ в качестве корневого контекста из базы данных BaseX по URI

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

У меня открыта база данных 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 ответ

Решение

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

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

Другие вопросы по тегам