2017-10-11 140 views
1

我想從輸入xml中提取值並使用groovy構造輸出xml。我得到了低於錯誤。我拿了一個小例子來驗證邏輯。使用groovy讀取輸入xml和構造輸出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異常:參數類型不匹配

感謝, Venkat

+0

錯誤是否表明錯誤發生在哪一行? –

回答

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()移動到部門級。