現在持っているxmlを考えると:
String doc = '''<entityProps>
| <candidate> <id>1</id><key></key> </candidate>
| <candidate> <id>2</id><key></key> </candidate>
| <candidate> <id>3</id><key></key> </candidate>
| <candidate> <id>4</id><key></key> </candidate>
|</entityProps>'''.stripMargin()
そしてフラグメント文字列:
String frag = '<candidate> <id>5</id><key></key> </candidate>'
ドキュメントを解析できます:
def xml = new XmlSlurper().parseText( doc )
そしてフラグメント:
def fragxml = new XmlSlurper().parseText( frag )
次に、フラグメントをドキュメントのルート ノードに追加します。
xml.appendNode( fragxml )
そして、このドキュメントを String にストリーミングします。
String newDoc = new groovy.xml.StreamingMarkupBuilder().bind { mkp.yield xml }
println newDoc
それは印刷します:
<entityProps>
<candidate><id>1</id><key></key></candidate>
<candidate><id>2</id><key></key></candidate>
<candidate><id>3</id><key></key></candidate>
<candidate><id>4</id><key></key></candidate>
<candidate><id>5</id><key></key></candidate>
</entityProps>
(読みやすくするために自分で改行を追加しました...実際に取得する文字列はすべて1行です)