通过URI从BaseX数据库中选择文档作为根上下文

问题描述 投票:0回答:1

可能并不困难,但我找不到正确的命令和语法:

我打开了一个包含几个XML文档的BaseX数据库:

/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上下文。像这样:

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

另一种也非常有用:在目录路径中选择所有文档(递归:))

document("/dirA/dirA1/")/root/foo
xquery basex xquery-3.1
1个回答
1
投票

具有doc功能,因此doc('/dirA/dirA1/x01.xml')应该选择文档。还有collection函数,它可能允许您选择collection('/dirA/dirA1')。收集函数的确切用法取决于XQuery处理器,例如您如何在BaseX中设置数据库。

因此,基本上doccollection函数在XQuery中应该有所帮助。仅XSLT具有您在示例中使用的名为document的函数。

© www.soinside.com 2019 - 2024. All rights reserved.