Bonjour tout le monde,
Je parcours un fichier XML avec des balises dupliquées.
Afin de générer une Map où chaque double ne sera pas écrasé par la dernière valeur,
je souhaite modifier le nom des doublons à chaque fois
voici un exemple:
1 2 3 4 5 6 7 8 9 10
| def xml = '''<Root>
<fruit>banane </fruit>
<fruit>fraise </fruit>
<fruit>pomme </fruit>
<legume>
<name>tomate </name>
<color> rouge </color>
<color> vert </color>
</legume>
</Root>''' |
Le résultat souhaité:
[fruit:'banane', fruit1:'fraise', fruit2:'pomme', legume:[name:'tomate', 'color': rouge, color1:'vert']
Pour le moment j'utilise le bout de code ci dessous pour transformer mon Xml en Map mais qui ne prends pas en compte les balises en double:
1 2 3
|
new XmlSlurper().parseText(xml).children().collectEntries { n ->
[(n.name(): { -> n.children()?.collectEntries(owner) ?: n.text()}()] |
Et j'obtiens le résultat:
[ fruit:'pomme', legume:[name:'tomate', color:'vert']
Merci d'avance pour votre aide.
Partager