2015-07-10 3 views
0

У меня есть текстовый файл, который служит в качестве «шаблона» и выглядит как-то так:Замена строки в шаблоне с помощью Groovy

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

В заводной скрипте Теперь я хотел бы, чтобы загрузить этот шаблон и ${payload} заменяется на конкретное значение из сценария.

Псевдо код:

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

Так что результат будет:

<data>Hello world</data> 

Я посмотрел на Groovy шаблонов, но я действительно не понимаю.

ответ

2

Вы можете использовать мощные движки шаблонов, которые позволяют вам иметь некоторый параметризованный текст. Вы определяете структуру, а затем вы заполняете ее необходимой информацией.

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>