2017-01-18 18 views
1

groovy sqlを学習しています。 tempertatureGroovyでは、メソッドcity()は印刷メソッドなしで印刷する方法

def sql = Sql.newInstance(...) 
def bldr = new MarkupBuilder() 
bldr.weather { 
    sql.eachRow('select * from weather'){ 
    city(name:it.city,temperature:it.temperature) 
    } 
} 

データベーステーブル名が天候、列です。そして、私は次のコードを見てきました。

上記のスクリプトを実行すると、私のコンソールは気象コンテンツをXML形式で出力します。

私が混乱しているのは、コンソールがのprint()メソッドなしでXMLを印刷する理由です。

+0

のインスタンスが必要?グルーヴィーシェルで? – Rao

+0

@Rao yes.I Grails Tool Suiteのコードです。「Alt + Shift + XG」で実行します。 –

+0

MarkupBuilderのソースコードで答えが見つかると思いますが、パッケージ内のソースコードが見つかりませんgroovy.xml。そして私の元の質問は、上記のコードを使用してファイルにxmlコンテンツを入力する方法です –

答えて

1

コンソールでgroovyコードを実行すると、デフォルトで最後に実行された文が返され、出力されます。例えば。スクリプトがある場合:

def l = [1, 2, 3, ] 

出力は次のようになります。

groovy> def l = [1, 2, 3, ] 

Result: [1, 2, 3] 

スクリプトにはprint文はありませんにもかかわらず。あなたのファイルに生成されたXMLをシリアル化する

はどのようにこのスクリプトを実行しているWriter

import groovy.xml.MarkupBuilder 

def sql = Sql.newInstance(...) 

def writer = new FileWriter('weather.xml') 
def bldr = new MarkupBuilder(writer) 

bldr.weather { 
    sql.each{ 
    city(name:it.city,temperature:it.temperature) 
    } 
} 
+0

ああ、ありがとう、ありがとう、私はそれを持っている –

+0

@ jianbo.fanあなたが私の答えを見つけた場合は助けてください:) – Opal

+0

申し訳ありませんが、私didn答えがどのように受け入れられるべきか分かりません。私はそれを知り、それを受け入れました。 –

関連する問題