我正在尝试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 ()
答案 0 :(得分:1)
听起来,空格是保存在要删除的节点两侧的文本节点中。您可以通过检查xdmp:describe($processNode/preceding-sibling::text())
和xdmp:describe($processNode/following-sibling::text())
来验证这一点。如果您愿意,也可以xdmp:node-delete
部分或全部这些文本节点。