Xquery 如何防止xdmp:node-delete()在xml文档中添加空格
我正在尝试将节点从一个xml文档移动到另一个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
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文档中节点前后的任何额外空间。谢谢