Xquery 如何防止xdmp:node-delete()在xml文档中添加空格

Xquery 如何防止xdmp:node-delete()在xml文档中添加空格,xquery,marklogic,Xquery,Marklogic,我正在尝试将节点从一个xml文档移动到另一个xml文档。两个文档使用相同的命名空间。我试图通过对第一个文档执行xdmp:node-insert-child(),然后按顺序对第二个文档执行xdmp:node-delete()。问题是xdmp:node-delete()在我的xml文档中留下了空格和返回。我怎样才能避免这种情况发生 下面是一个代码示例 let $documentId := 12345 let $newStatus := 123 let $processNode := $PROCESS

我正在尝试将节点从一个xml文档移动到另一个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 ()

听起来,空白似乎保存在要删除的节点两侧的文本节点中。您可以通过检查
xdmp:descripe($processNode/前面的同级::text())
xdmp:descripe($processNode/后面的同级::text())
来验证这一点。如果您愿意,您也可以
xdmp:node delete
删除部分或全部文本节点。

听起来,您要删除的节点两侧的文本节点中都保留了空格。您可以通过检查
xdmp:descripe($processNode/前面的同级::text())
xdmp:descripe($processNode/后面的同级::text())
来验证这一点。如果您愿意,您也可以
xdmp:node delete
删除部分或全部文本节点。

您确定开头没有空格吗?每个子节点后面都有一个返回,但没有空格。我使用相同的xdmp:node-insert-child()来初始填充这些节点。哎呀,你的权利我刚刚注意到我的一些节点在节点后创建了空格。看起来我的问题不是删除节点,而是为什么创建节点时会出现空白。谢谢你的帮助。你确定开头没有空格吗?每个子节点后面都有一个返回,但没有空格。我使用相同的xdmp:node-insert-child()来初始填充这些节点。哎呀,你的权利我刚刚注意到我的一些节点在节点后创建了空格。看起来我的问题不是删除节点,而是为什么创建节点时会出现空白。感谢您的帮助。运行这些将允许我检查并删除xml文档中节点前后的任何额外空间。谢谢运行这些命令将允许我检查并删除xml文档中节点前后的任何额外空间。谢谢