1

入力 xml から値を抽出し、groovy を使用して出力 xml を構築しようとしています。エラーを下回っています。ロジックを検証するために小さな例を取り上げました。

 def xml1 = """
 <company type="bentley">
     <account>
      <dept1>IT</dept1>
      <dept2>Admin</dept2>
      <dept3>Security</dept3>
    </account>
</company>""" ;

def xml2 = """
<company type="NG">
    <account>
      <dept1></dept1>
      <dept2></dept2>
      <dept3></dept3>
     </account>
</company>""";

def rootnode1= new XmlParser().parseText(xml1);
def rootnode2= new XmlParser().parseText(xml2);

rootnode1.account.each {
rootnode2.account.dept1[0].value = it.dept1[0].text();
rootnode2.account.dept2[0].value = it.dept2[0].text();
}

エラー: java.lang.IllegalArgumentException: 引数の型が一致しません

ありがとう、ベンカット

4

1 に答える 1

0

each 関数にカウンターを提供する必要があるようです。次のようなことを試してください。

rootnode1.account.each { n ->
rootnode2.account.dept1[0].value = n.dept1[0].text();
rootnode2.account.dept2[0].value = n.dept2[0].text();
}

さらに良いことに、部門の数が不明な場合は、部門.each()レベルに移動できます。

于 2017-10-11T15:43:35.320 に答える