0

これはSOに関する私の最初の質問ですので、優しくしてください。MarkupBuilderを使用してxmlを生成するためのGroovyコードを書いています。問題は、多くの異なる製品タイプに対して多くの同様の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を${}で囲んでみましたが、マップ[:]として渡しましたが、これまでのところ役に立ちません。

誰かが私がこれを達成する方法を知っていますか?

どんな助けでも大歓迎です。

ありがとう、ポール。

4

1 に答える 1

1

と呼ばれる変数があるとするとproductGroupName、次を使用できるはずです(二重引用符に注意してください)。

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

それはあなたが意味したことですか?

于 2012-05-22T15:27:50.833 に答える