1

MOVEあるxmlドキュメントから別のxmlドキュメントにノードを作成しようとしています。両方のドキュメントが同じ名前空間を使用しています。私はこれを達成するためxdmp:node-insert-child()に、最初のドキュメントで実行し、次にxdmp:node-delete()2番目のドキュメントで順番に実行しようとしています。問題は、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 に答える