Reputation: 9289
my xml file name my.xml has contents like
<xml>
<parent a="1">
<child1>val1</child1>
<chid2>val2</child2>
</parent>
I need the part
<child1>val1</child1>
<chid2>val2</child2>
as is to insert into another xml file which has contents
<xml>
<parent a="1">
<child1>val3</child1>
<chid2>val4</child2>
</parent>
to make it look like
<parent a="1">
<child1>val3</child1>
<chid2>val4</child2>
<child1>val1</child1>
<chid2>val2</child2>
</parent>
Upvotes: 0
Views: 858
Reputation: 11022
Try this :
import groovy.xml.XmlUtil
def from = """<parent a="1">
<child1>val1</child1>
<child2>val2</child2>
</parent>
"""
def to = """<parent a="1">
<child1>val3</child1>
<child2>val4</child2>
</parent>"""
def fromxml = new XmlSlurper().parseText(from)
def toxml = new XmlSlurper().parseText(to)
toxml[0].children() << fromxml.children()
println XmlUtil.serialize(toxml)
Upvotes: 2
Reputation: 20699
String s = """<parent a="1">
<child1>val1</child1>
<child2>val2</child2>
</parent>"""
def xml = new XmlSlurper().parseText( s )
assert 'val1' == xml.child1.text()
assert 'val2' == xml.child2.text()
assert 'child2' == xml.child2.name()
Upvotes: 1