Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Шаблоны: удаление элементов, у которых нет данных

Автор вопроса: Aravind YarramОтветов: 1

Я использую функцию шаблонов Groovy xml. Ниже мой шаблон и привязки. Иногда у меня нет никакого значения для LastName. Я бы хотел, чтобы 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()
    }

javagroovytemplate-engine

Ответы

Ответ 1 · рейтинг 2 · RonK

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

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

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

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

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

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы