如何在MarkLogic指定Forest(ABC)中查询所有文档名称
获取MarkLogic指定Forest的所有文档名称并格式化输出
嘿,要搞定MarkLogic里Forest ABC的文档名称列表并输出你要的格式,用XQuery就能轻松实现,下面是具体的实现方法:
核心思路
利用MarkLogic内置的xdmp:forest-documents()函数定位目标Forest的所有文档,提取每个文档的URI(也就是你要的文档名称),再拼接成要求的字符串格式。
XQuery实现代码
(: 1. 获取目标Forest ABC的ID :) let $forest-id := xdmp:forest("ABC") (: 2. 提取该Forest下所有文档的URI :) let $doc-uris := fn:document-uri(xdmp:forest-documents($forest-id)) (: 3. 拼接成指定格式的字符串 :) let $output := concat("Forest ABC has ", string-join($doc-uris, " "), " and so on...") (: 4. 输出结果 :) return $output
代码解释
xdmp:forest("ABC"):通过Forest名称获取对应的唯一ID,因为xdmp:forest-documents()需要传入Forest ID作为参数。xdmp:forest-documents($forest-id):返回该Forest下存储的所有文档节点。fn:document-uri():从每个文档节点中提取文档的URI(即文档名称)。string-join($doc-uris, " "):把所有文档URI用空格连接成一个字符串。concat(...):把开头的固定文本、文档列表和结尾的"and so on..."拼接成最终输出格式。
输出示例
如果Forest ABC里有文档A.xml、B.xml、C.xml,运行代码后会输出:
Forest ABC has A.xml B.xml C.xml and so on...
如果文档数量较多,这个格式也能完美适配,直接把所有文档URI按空格分隔后拼接即可。
内容的提问来源于stack exchange,提问作者G Irala
相关产品推荐
相关产品推荐

