我正在创建一个文档并在内存中更新它。但它不是更新文档,即不从创建的文档中删除“文件 - 文本”元素。下面是代码。 能否请你告诉我这里缺少的东西。
xquery version "1.0-ml";
declare namespace html = "http://www.w3.org/1999/xhtml";
import module namespace mem = "http://xqdev.com/in-mem-update" at "/MarkLogic/appservices/utils/in-mem-update.xqy";
let $createArchDoc := xdmp:document-insert("/abc.xml",doc("/xyz.xml"))
let $createArchDoc := mem:node-delete($createArchDoc/document/file-text)
return $createArchDoc/document
我也试过
let $createArchDoc := xdmp:document-insert("/abc.xml",doc("/xyz.xml"))
let $myNewDoc := doc("/abc.xml")
let $myNewDoc := mem:node-delete($myNewDoc/document/file-text)
return $myNewDoc/document
答案 0 :(得分:4)
in-mem-update
库旨在用于尚未持久保存到数据库的结构。您必须先应用mem调用,然后保持。
此外,xdmp:document-insert
会返回空序列,因此$createArchDoc
在两种情况下都会为空。
您可能会寻找以下内容(未经测试):
xquery version "1.0-ml";
import module namespace mem = "http://xqdev.com/in-mem-update" at "/MarkLogic/appservices/utils/in-mem-update.xqy";
let $createArchDoc := doc("/xyz.xml")
let $createArchDoc := mem:node-delete($createArchDoc/document/file-text)
let $_ := xdmp:document-insert("/abc.xml",$createArchDoc)
return $createArchDoc/document
HTH!