XMLSlurper を使用して XML ドキュメントを更新するのに問題があります。ほとんどのことは機能しますが、状況によっては、追加したノード (appendNode) が「検索」で見つからないことがあります。新しいノードは処理の最後にありますが、子を追加している最中には見つかりません。
XMLSlurper に関する投稿を見つけました。新しいノードを見つけるには、parseText を再度呼び出すか、または StreaMarkupBuilder (以下を参照) を呼び出す必要があると書かれています。本当?!それは私がSOで検証すると思ったので、とてもぎこちないようです。
コードスニペットを次に示します。ノードが追加されたばかりであっても、「検索」は NoChildren を取得します。
codeNode.appendNode {
'lab:vendorData'() {}
}
vendorNode = codeNode.children().find { it.name() == "vendorData" }
「appendNode は丸呑みされたドキュメントを直接変更しません。StreamingMarkupBuilder を使用してドキュメントが書き出されると、編集は「その場で」適用されます。」 http://markmail.org/message/5nmxbhwna7hr5zcq#query:related%3A5nmxbhwna7hr5zcq+page:1+mid:bkdesettsnfnieno+state:results
新しいノードが見つからないのはなぜですか?!