1

我正在尝试将MOVE节点从一个 xml 文档转移到另一个。两个文档都使用相同的命名空间。我试图通过依次对xdmp:node-insert-child()第一个文档然后xdmp:node-delete()对第二个文档执行此操作来完成此操作。问题是xdmp:node-delete()在我的 xml 文档中留下空格并返回。我怎样才能防止这种情况发生?

这是一个代码示例...

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 ()
4

1 回答 1

1

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

于 2013-03-06T17:24:32.300 回答