You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

BaseX只读用户无法用doc()读取XML文档,求高效替代方案

BaseX只读用户读取XML文档的替代方案
  • 问题根源:doc()函数在BaseX中,即便目标文档已存在,其内部逻辑仍可能涉及文档节点的创建操作,触发只读用户的权限限制。
  • 解决方案:使用BaseX专属的db:get()函数直接读取数据库内的现有文档,该函数仅执行读取操作,不会触发创建权限检查,且效率与doc()相当(毫秒级响应)。

修改后的查询文档(getDoc.xml)

<query>
<text><![CDATA[
    let $doc-name := 'example.xml'
    return db:get($doc-name)
]]></text>
</query>

注:如果操作的不是默认数据库,需指定数据库名称,格式为db:get('数据库名', 'example.xml')

验证curl命令

curl -s --data-binary '@getDoc.xml' 'http://reader:readersPW@localhost:8080/rest'

补充方案

如果需要通过路径而非文档名读取,也可以使用collection()函数结合文档路径,示例如下:

collection('/')/example.xml

该方式同样仅读取现有文档,不会触发创建权限问题,效率也能满足毫秒级要求。

内容的提问来源于stack exchange,提问作者leu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 04:02:02