我想以下面的格式获取XML,并将每个代码记录加载到我的BootStrap.groovy
中的域对象中。我想保留每段代码的格式。
<records>
<code>
<language>Groovy</language>
<snippet>
println "This is Groovy"
println "A very powerful language"
</snippet>
</code>
<code>
<language>Groovy</language>
<snippet>
3.times {
println "hello"
}
</snippet>
</code>
<code>
<language>Perl</language>
<snippet>
@foo = split(",");
</snippet>
</code>
</records>
Code {
String language
String snippet
}
new Code(language l, snippet: x).save()
答案 0 :(得分:1)
大致是这样的:
def CODE_XML = '''
<records>
<code>
<language>Groovy</language>
<snippet>
println "This is Groovy"
println "A very powerful language"
</snippet>
</code>
<code>
<language>Groovy</language>
<snippet>
3.times {
println "hello"
}
</snippet>
</code>
<code>
<language>Perl</language>
<snippet>
@foo = split(",");
</snippet>
</code>
</records>
'''
def records = new XmlParser().parseText(CODE_XML)
records.code.each() { code ->
new Code(language: code.language, snippet: code.snippet).save()
}
答案 1 :(得分:0)
如果您可以指定DTD或类似的,并且您的XML解析器服从它,我认为您可以将片段元素的内容指定为CDATA并始终按原样获取。
答案 2 :(得分:0)
尝试将xml:space="preserve"
属性添加到<snippet>
元素。