2013-03-06 46 views
1

我正在尝试从一个xml文档到另一个xml文档的MOVE节点。两个文档都使用相同的名称空间。我试图通过在第一个文档上执行xdmp:node-insert-child()然后在第二个文档上按顺序执行xdmp:node-delete()来完成此操作。问题是xdmp:node-delete()在我的xml文档中留下空格和返回值。我怎样才能防止这种情况发生?如何防止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() 
+1

你确定空白不在那里吗? – wst 2013-03-06 16:48:33

+0

每个子节点都有一个返回,但没有空格。我使用相同的xdmp:node-insert-child()来初始填充这些节点。 – dmasd 2013-03-06 16:59:27

+0

糟糕,你的权利我只注意到我的一些节点正在节点后面用空格创建。看起来像我的问题不是删除节点,而是为什么我创建它们时得到空白区域。谢谢你的帮助。 – dmasd 2013-03-06 17:22:16

回答

1

这听起来像空白的文本节点举行要删除的节点的两侧。您可以通过检查xdmp:describe($processNode/preceding-sibling::text())xdmp:describe($processNode/following-sibling::text())来验证此情况。如果你喜欢,你也可以使用xdmp:node-delete部分或全部文本节点。

+0

运行这些将允许我检查和删除我的xml文档中节点前后的任何额外空间。谢谢! – dmasd 2013-03-06 18:01:22