2015-07-10 36 views
0

我有作为“模板”和看起来像是这样一个文本文件:在模板替换字符串使用Groovy

[...] 
<data>${payload}</data> 
[...] 

在Groovy脚本我现在想加载此模板,${payload}被替换为脚本中的特定值。

伪代码:

def payload = "Hello world" 
def f = new File(filename) 
println f.text 

这样的结果将是:

<data>Hello world</data> 

我已经看过Groovy的模板,但我真的不明白这一点。

回答

2

你确实可以使用groovy模板引擎,它可以让你有一些参数化的文本。你定义一个结构,然后用你想要的信息填充它

def text = '<h1>${title}</h1><data>${payload}</data>' 

    def binding = ["title":"My Title", "payload":"Hello world"] 

    def engine = new groovy.text.SimpleTemplateEngine() 
    def template = engine.createTemplate(text).make(binding) 
    println template.toString() // <h1>My Title</h1><data>Hello world</data>