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 中设置数据库。
所以基本上 doc
和 collection
函数应该在 XQuery 中有所帮助。只有 XSLT 具有您在示例中使用过的名为 document
的函数。
可能不难,但我找不到正确的命令和语法:
我打开了一个 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 中设置数据库。
所以基本上 doc
和 collection
函数应该在 XQuery 中有所帮助。只有 XSLT 具有您在示例中使用过的名为 document
的函数。