我想使用循环从文档中删除多个节点,并使用内存更新 api 将更新的文档保存在内存中。下面是我正在使用的代码:
var mem = require("/MarkLogic/appservices/utils/in-mem-update.xqy");
var myDoc = cts.doc("abc.xml");
var nodeArr = [];
nodeArr = myDoc.xpath("/document/version").toArray();
for (i in nodeArr)
{
if(nodeArr[i].xpath('@id')!= "1"){
myDoc = mem.nodeDelete(nodeArr[i])
}
}
myDoc;
假设我的文档中有 3 个版本,我想删除id=1
. 以下代码的结果只是删除了版本 3 并将版本 2 保留在文档中。也许版本 2 删除被内存中的版本 3 覆盖。
我在这里想念什么?