У меня проблемы с использованием XMLSlurper для обновления XML-документа. Большинство вещей работает, но в некоторых ситуациях «find» не находит узел, который я только что добавил (appendNode). Новый узел находится в конце обработки, но не обнаруживается, когда я добавляю дочерние элементы.
Я нашел сообщение о XMLSlurper, в котором говорится, что для поиска нового узла необходимо снова вызвать parseText и / или StreaMarkupBuilder (см. Ниже). В самом деле?! Это кажется таким глупым, что я решил проверить на SO.
Вот фрагмент кода. "Find" получает NoChildren, хотя Node был только что добавлен.
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
Почему я не могу найти свой новый узел?!