2016-07-14 15 views
1

私はGroovyでXMLファイルを解析していますが、後で返される変数を追加する必要があります。複数の文字列をGroovyに追加する方法は?

def lmList = slurperResponse.LastGlobal.HeatMap 
String appendedString = lmList.country + lmList.ResponseTime + lmList.timeset 

これは、3つの文字列を追加するためには機能しません。最初の文字列を右側に割り当てます。 Groovyで正しく実装するには?私はconcatを試してみましたが、それが次のエラー投げた:あなたが提供されていないplus()/concat()メソッドを呼び出そうとしていることを、

String appendedString = "${lmList.country}${lmList.ResponseTime}${lmList.timeset}" 

あなたは手段を得ている例外:

groovy.lang.MissingMethodException: No signature of method: groovy.util.slurpersupport.NodeChildren.concat() is applicable for argument types: (groovy.util.slurpersupport.NodeChildren) values: [4468] 
Possible solutions: toFloat(), collect(), collect(groovy.lang.Closure) 
at 
+0

あなたはいくつかのサンプルXMLを与えることができますか? –

答えて

1

によってinjecteerの代替として -

文字列を追加しようとしていなかったため、文字列を含むノードを追加しようとしていました。 XMLを想定し

2

ヨールコードがどのように見えるものをNodeChildren

+0

私は宣言的なあなたのコードを好きになる: - 非常に良い:) –

1

は、次のようになります。

def xml = ''' 
<Root> 
    <LastGlobal> 
     <HeatMap> 
      <Country>USA</Country> 
      <ResponseTime>20</ResponseTime> 
      <TimeSet>10</TimeSet> 
     </HeatMap> 
    </LastGlobal> 
</Root> 
''' 

以下は期待されているものを与える必要があります:

def slurped = new XmlSlurper().parseText(xml) 
assert slurped.LastGlobal.HeatMap.children()*.text().join() == 'USA2010' 
関連する問題