Groovy 标记生成器标签

标签 groovy markup

有没有办法修改之前答案中的代码

import groovy.xml.MarkupBuilder

def writer = new StringWriter()
def builder = new MarkupBuilder(writer)

def awaiting = ['one', 'two', 'three']

builder.html {
    ul {
        awaiting.each { 
            li(it.toString())
        }
    }
}

println writer.toString()

这样,如果您添加标签而不是发送它 - 就像

    builder.html{
tag{
    awaiting.each{}
    }
} return result

例如可以是“ol”或“ul”

最佳答案

您可以依赖 GString,并且可以通过其字符串值调用函数。

import groovy.xml.MarkupBuilder

def writer = new StringWriter()
def builder = new MarkupBuilder(writer)

def awaiting = ['one', 'two', 'three']
def tag = 'ol'

builder.html {
    "$tag" {
        awaiting.each { 
            li(it.toString())
        }
    }
}

println writer.toString()

关于Groovy 标记生成器标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3069614/

相关文章:

java - 如何在 groovy 中执行 url?

markup - 我应该如何根据 schema.org 标记价格列和设置费用

javascript - 在不重新创建标记的情况下测试 JavaScript 代码?

html - div 在 Chrome 中消失了

testing - 似乎 Groovy 在这两种情况下的行为不同?

elasticsearch - 在 Elasticsearch 中无痛排序

vim - vim 帮助文件标记的文档

css - 我如何管理这个嵌套标记和 CSS 以保持简单易用?

list - 是否有相当于 Ruby 的 #map 的 Groovy?

maven - 如何将Cobertura插件应用于所有项目或所有子项目