3 votes

Analyse en groovy entre deux balises?

Je voudrais analyser cette Gstring avec Groovy :

Type de format : Clé, Valeur.

   def txt = """ 
                  ID,1
                  FovCount,600
                  FovCounted,598
                  ...
                   """

Et obtenir une carte comme :

Map = [ID:1, FovCount:600, FovCounted:598]

Comment puis-je :
- extraire le texte entre les balises <Lane_Attributes> et </Lane_Attributes>,
- et le convertir en une carte ?

3voto

Burt Beckwith Points 46122

Essayer ceci:

def map = [:]
txt.replaceAll('<.+>', '').trim().eachLine { line ->
   def parts = line.split(',')
   map[parts[0].trim()] = parts[1].trim().toInteger()
}

2voto

Vinny Points 410
   def txt = """ <Lane_Attributes>
                  ID,1
                  FovCount,600
                  FovCounted,598

                  </Lane_Attributes> """

def map = new HashMap()
def lane = new XmlParser().parseText(txt)

 def content =  lane.text()

content.eachLine {
 line -> 

def dual =  line.split(',')
def key = dual[0].trim()
def val = dual[1].trim() 
//println "key: ${key} value: ${val}"
map.put(key,val)

}

println "map contains " +  map.inspect() 

//Will print: map contains ["FovCounted":"598", "ID":"1", "FovCount":"600"]

your problem is the fact that the contents between the tags will need to keep the same format throughout or this code will break

0voto

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X