如何防止xdmp:node-delete()在我的xml doc中添加空格

时间:2013-03-06 16:43:29

标签: xquery marklogic

我正在尝试MOVE从一个xml文档到另一个xml文档的节点。两个文档都使用相同的命名空间。我试图通过在序列中的第二个文档上的第一个文档xdmp:node-insert-child()xdmp:node-delete()来完成此操作。问题是xdmp:node-delete()在我的xml doc中留下空格并返回。我该如何防止这种情况发生?

这是一个代码示例......

let $documentId := 12345
let $newStatus := 123
let $processNode := $PROCESS-DOC//pex:process[(@documentId = $documentId)]    
let $newNode :=
       element { QName($TNS, 'process') } {
        attribute status { $newStatus },
        attribute documentId { $processNode/@documentId },
       }  
return
    if ($processNode and $newNode) then
      (xdmp:node-insert-child($PROCESS-COMPLETE-DOC/pex:processes, $newNode),xdmp:node-delete($processNode))
    else ()

1 个答案:

答案 0 :(得分:1)

听起来,空格是保存在要删除的节点两侧的文本节点中。您可以通过检查xdmp:describe($processNode/preceding-sibling::text())xdmp:describe($processNode/following-sibling::text())来验证这一点。如果您愿意,也可以xdmp:node-delete部分或全部这些文本节点。