gpt4 book ai didi

xquery - 如何使用xquery查找数据库中是否存在文档

转载 作者:行者123 更新时间:2023-12-01 11:58:03 24 4
gpt4 key购买 nike

我在 BaseX XML 数据库上使用 xquery。比如说,我的数据库中存储了以下文档:doc1、doc2、doc3。

我使用什么 Xquery 来检查给定文档是否存在。我尝试了以下方法:

将变量 $doc_name 声明为 xs:string external;

返回 bool 值($doc_name)

我希望它按如下方式工作:如果 doc_name = doc1 返回真如果 doc_name = nodoc 返回 false

但是,我看到一个异常(exception):

java.io.IOException:停止在第 3 行,第 7 列:[XPST0003] 查询意外结束:'boolean("doc1")'。

我也试过返回

  • 返回 fn:exists($doc_name) 和

  • 返回 fn:doc-available(doc_uri)

这些也不起作用。我看到了相同的查询异常结束。检查文档是否存在的正确方法是什么?

谢谢,索尼

最佳答案

使用标准的 XPath/XQuery 函数 doc-available() .

来自规范:

fn:doc-available($uri as xs:string?) as xs:boolean

总结:当且仅当函数调用 fn:doc($uri) 将返回文档节点时,函数返回 true。

如果$uri 是一个空序列,这个函数返回false

如果对 fn:doc($uri) 的调用将返回文档节点,则此函数返回 true

如果根据 fn:doc 的实现应用的规则,$uri 不是有效的 URI,则会引发错误 [err:FODC0005]。

否则,此函数返回false

如果此函数返回true,则在同一·执行范围·内调用fn:doc($uri) 必须返回一个文档节点。但是,如果为 fn:doc 函数选择了不稳定处理,则此保证将丢失。

关于xquery - 如何使用xquery查找数据库中是否存在文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4877381/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com