2017-10-11 7 views
1

J'essaie d'extraire les valeurs de xml d'entrée et de construire xml de sortie en utilisant groovy. Je suis en dessous de l'erreur .J'ai pris un petit exemple pour vérifier la logique.Erreur lors de la lecture d'entrée xml et la construction de sortie xml en utilisant groovy

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(); 
} 

Erreur: java.lang.IllegalArgumentException: Type argument de non-concordance

Merci, Venkat

+0

L'erreur indique-t-elle la ligne sur laquelle l'erreur se produit? –

Répondre

0

Il semble que vous devez fournir la fonction each un compteur. Essayez quelque chose comme ce qui suit:

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

Mieux encore, si vous avez un nombre inconnu de services, vous pouvez déplacer le .each() au niveau de département.