Select 通过 URI 将文档作为 BaseX 数据库的根上下文

Select document as root context from a BaseX database by 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

我正在寻找的是通过 URI select 文档并将其用作 XPath 上下文的 XQuery,s.th。像这样:

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

另一个也非常有用:select 目录路径中的所有文档(递归:))

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

有一个 doc 函数,所以 doc('/dirA/dirA1/x01.xml') 应该 select 文档。还有 collection 函数,它可能允许您 select collection('/dirA/dirA1'),集合函数的确切使用取决于 XQuery 处理器,例如您如何在 BaseX 中设置数据库。

所以基本上 doccollection 函数应该在 XQuery 中有所帮助。只有 XSLT 具有您在示例中使用过的名为 document 的函数。