Выбрать документ в качестве корневого контекста из базы данных 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
вы использовали в своих образцах.