шаблонизация: удаление элементов, которые не имеют данных - PullRequest
1 голос
/ 16 июня 2011

Я использую XML-шаблон Groovy.Ниже мой шаблон и привязка (и).Иногда у меня нет никакого значения для Фамилии.Я бы хотел, чтобы groovy не создавал элемент, если в нем нет непустых данных.Может кто-нибудь подсказать, как это сделать?

Шаблон

<PersonName nameIdentifier="Current">
     <FirstName>${FirstName}</FirstName>
     <LastName>${LastName}</LastName>
</PersonName>

Переплет

def binding1 = ['FirstName':FirstName ,'LastName':'LastName']
def binding2 = ['FirstName':FirstName ,'LastName':'']

Код

public static String createXml(String templateResourceName, def bindings)
    {
        def engine = new XmlTemplateEngine()
        def output = engine.createTemplate(getResource(templateResourceName)).make(bindings)

        return output.toString()
    }

1 Ответ

2 голосов
/ 16 июня 2011

Я думаю, что это может работать:

<% print LastName != null ? "<LastName>"+LastName+"</LastName>" : "" %>

Но я впервые слышу об этой функции, так что если это произойдет, это будет удачное предположение ...

Редактировать: Попробовал немного на веб-консоли Groovy - это должно работать:

def text = '<PersonName nameIdentifier="Current">\n<FirstName>${FirstName}</FirstName>\n<% print LastName != "" ? "<LastName>"+LastName+"</LastName>\\n" : "" %></PersonName>'

...