【问题标题】:How do I parameterize grails/groovy xml MarkupBuilder .builder syntax?如何参数化 grails/groovy xml MarkupBuilder .builder 语法?
【发布时间】:2012-05-22 15:22:35
【问题描述】:

这是我关于 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,我也将它作为地图 [:] 传递,但到目前为止无济于事。

有谁知道我如何做到这一点?

非常感谢任何帮助。

谢谢, 保罗。

【问题讨论】:

    标签: xml grails groovy markupbuilder


    【解决方案1】:

    假设您有一个名为productGroupName 的变量,您应该可以使用(注意双引号):

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

    这是你的意思吗?

    【讨论】:

    • Doh 大声笑我什么都试过了,但它正盯着我的脸 :-) 太好了。仍然掌握groovy!感谢您的帮助和快速响应!
    猜你喜欢
    • 2013-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-08
    • 2012-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多