0

次のようなクロージャーを使用して Xml ビルドを構築しています。

def buildRequestXml {
 def RequestXml{  //add namespace and version attribute on root
   FirstName("Name1")
   LastName("Name2")
   DOB("12/19/1983") //add attribute format="mm/dd/yyyy"
 }
 return new StreamingMarkupBuilder().bind(RequestXml)
}

どうすればいいですか?

4

2 に答える 2

1

参照してください: Groovy の MarkupBuilder を使用した XML の作成。特に「名前空間認識の例」のセクション。

基本的には、上記で tim_yates が言ったのと同じように行いますが、名前空間/プレフィックスのバインディングを手動で配置します。

import groovy.xml.* 

def buildRequestXml() {
   def requestXml = {  //add namespace and version attribute on root
       mkp.xmlDeclaration()
       'test:root'('xmlns:test': 'urn:blah') {
           FirstName("Name1")
           LastName("Name2")
           DOB("12/19/1983") //add attribute format="mm/dd/yyyy"
       }
   }
   new StreamingMarkupBuilder().bind( requestXml )
}

println buildRequestXml()

これは、名前にコロンを入れることができる特別な一重引用符の構文です。これは、有効な Java 構文ではない変数名を groovy で指定する方法です。詳細については、この投稿を参照してください。

于 2013-11-07T18:16:47.220 に答える