我有一个如下所示的Xml文件:( xml的一部分)
<timestamp>${timestamp}</timestamp>
<registered>true</registered>
<Person>
<name>${name}</name>
<age>${age}</age>
<height>${height}</height>
</person>
...
我正在使用Groovy XtmTemplateEngine将值传递给xml
def engine = new groovy.text.XmlTemplateEngine()
def template = engine.createTemplate(xmlFile).make(binding)
绑定是一个包含我需要注入xml的所有值的Map。我面临的问题是注入后生成的文件看起来像这样
<timestamp>
${timestamp}
</timestamp>
<registered>
true
</registered>
<Person>
<name>
${name}
</name>
<age>
${age}
</age>
<height>
${height}
</height>
</person>
按预期注入值,但元素在多行中展开。在使用xmlTemplateEngine处理xml文件后,有没有办法将xml文件恢复为其初始格式?
我尝试使用XmlUtils.serialize()打印它,但结果是一样的。
编辑::因为我没有找到任何方法来保留文件的原始格式,我最终使用SimpleTemplateEngine。如daggett所述,使用&lt; %%&gt;与&lt;具有相同的结果gsp:scriptlet&gt;
答案 0 :(得分:0)
似乎无法使用XmlTemplateEngine保留原始格式
如果您不需要xml验证,XmlTemplateEngine的其他功能会尝试使用GStringTemplateEngine。
它保留了原始格式
def tpl='''
<root>
<timestamp>${timestamp}</timestamp>
<registered>true</registered>
<Person>
<name>${name}</name>
<age>${age}</age>
<height>${height}</height>
</Person>
</root>'''
def engine = new groovy.text.GStringTemplateEngine()
def template = engine.createTemplate(tpl).make([
timestamp: new Date(),
name: 'mama & mia',
age: 12,
height: 175
])