如何参数化 grails/groovy xml MarkupBuilder .builder 语法



这是我关于SO的第一个问题,所以要温柔。我正在编写一些时髦的代码来使用MarkupBuilder生成xml。问题是我必须为许多不同的产品类型生成大量类似的 xml,如果我无法参数化它,代码将变得很大。向您展示可能会帮助您更好地理解:

def writer = new StringWriter()
def builder = new groovy.xml.MarkupBuilder(writer)
builder.'cr:request'('xmlns:prodType': 'http://www.myurl/ProductType', 'xmlns:cr': 'http://www.myurl/customerRequest')
{
...
// Bla bla lots of elements and attributes
...
builder.'prodType:ProductGroupName'(ID:"IDPRD"+itemCount, internalID:internalID)
{
 productGroup("PGroup")
 productName("PName")
 ProductSpecificDetails()
 {
   param("paramA")
   stringValue("valA")
   param("paramB")
   stringValue("valB")
   ...

我正在尝试参数化上面的代码中的"prodType:ProductGroupName",甚至只是ProductGroupName。这意味着我将允许我为此传递各种值以及参数列表,以便为不同的产品动态生成 xml。

在网上查看,我尝试用 ${} 包围 ProductGroupName,我也将其作为地图 [:] 传递,但到目前为止无济于事。

有谁知道我如何实现这一目标?

任何帮助都非常感谢。

谢谢保罗。

假设你有一个名为 productGroupName 的变量,你应该能够使用(注意双引号(:

builder."prodType:$productGroupName"(ID:"IDPRD$itemCount", internalID:internalID)

这是你的意思吗?

最新更新