Groovy och XML

7 views
Skip to first unread message

Niclas Gurell

unread,
Feb 25, 2010, 11:54:47 AM2/25/10
to SweGUG
Nån som har erfarenhet av Groovy och XML?

Jag tyckte att det var lite tråkigt att skriva driftsättningsskript
med Ant så jag började använda Groovy istället. Nu har jag kommit till
att konfigurera Tomcat:s xml-filer och började använda XmlParser och
XmlSlurper. Dessa stöder dock inte kommentarer i xml-filer så jag
bytte till DOMBuilder istället. Mitt problem är, förutom att jag är
ganska ny på Groovy, att jag inte kan styra hur jag vill lägga till
noder i xml-strukturen.

Nedan ett exempel som stoppar in ett barn3 som hamnar sist samt ett
barnbarn som hamnar under barn1. Jag vill kunna stoppa in en nod barn3
mellan barn1 och barn2 men det har jag inte lyckats med ännu. Nån som
har några tips?

Mvh

Niclas Gurell

------------------------------------------
import groovy.xml.DOMBuilder
import groovy.xml.dom.DOMCategory

def exempel = '''
<root>
<barn1>aaa</barn1>
<barn2>bbb</barn2>
</root>
'''

def doc = DOMBuilder.parse(new StringReader(exempel))
def root = doc.documentElement

use(DOMCategory) {
root.appendNode('barn3', "ccc")
root.barn1[0].appendNode('barnbarn1', "ddd")
}

new XmlNodePrinter(new PrintWriter(new StringWriter())).print(root)
------------------------------------------

JensRiboe

unread,
Feb 26, 2010, 3:26:17 AM2/26/10
to SweGUG
>>Jag vill kunna stoppa in en nod barn3 mellan barn1 och barn2
Prova detta

def exempel = '''
<root>
<barn1>aaa</barn1>
<barn2>bbb</barn2>
</root>
'''

def root = new XmlParser().parseText(exempel)
def n = new NodeBuilder().createNode('barn3', 'ccc')
root.children().add(1, n)

def buf = new StringWriter()
new XmlNodePrinter(new PrintWriter(buf)).print(root)
println buf

mvh /jens

Reply all
Reply to author
Forward
0 new messages