如何在groovy中使用NodeBuilder模式动态设置节点属性

如何在groovy中使用NodeBuilder模式动态设置节点属性,groovy,markup,builder,Groovy,Markup,Builder,在使用NodeBuilder模式时,如何基于groovy中的条件设置动态节点属性 像下面这样 def b = DOMBuilder.newInstance() b.div ( attribute: "value") { if (condition) { // Set div.dynamicAttribute to true here } } 最好在条件语句中引用当前元素,因为条件可能会出现在结构的深处。最简单的方法是在节点闭包之外计算动态属性的条件。例如: i

在使用NodeBuilder模式时,如何基于groovy中的条件设置动态节点属性

像下面这样

def b = DOMBuilder.newInstance()
b.div ( attribute: "value") {
    if (condition) {
        // Set div.dynamicAttribute to true here
    }

}

最好在条件语句中引用当前元素,因为条件可能会出现在结构的深处。

最简单的方法是在节点闭包之外计算动态属性的条件。例如:

if (condition) {
    b.div(attribute: "value", dynamicAttribute: true) {
        ...
    }
} else {
    b.div(attribute: "value") {
        ...
    }
}
或者,您可以事先创建属性映射:

def attributes = [attribute: "value"]
if (condition) {
    attributes['dynamicAttribute'] = true
}
b.div(attributes) {
    ...
}

最简单的方法是计算节点闭包外部的动态属性的条件。例如:

if (condition) {
    b.div(attribute: "value", dynamicAttribute: true) {
        ...
    }
} else {
    b.div(attribute: "value") {
        ...
    }
}
或者,您可以事先创建属性映射:

def attributes = [attribute: "value"]
if (condition) {
    attributes['dynamicAttribute'] = true
}
b.div(attributes) {
    ...
}