Разбор в паз между двумя тегами? - PullRequest
3 голосов
/ 07 мая 2010

Я хотел бы проанализировать эту строку с помощью groovy:

Тип формата: Ключ, Значение.

   def txt = """ <Lane_Attributes>
                  ID,1
                  FovCount,600
                  FovCounted,598
                  ...
                  </Lane_Attributes> """

И получить карту типа:

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

Как я могу:
- извлечь текст между тегом и?,
- и преобразовать в карту?

Ответы [ 3 ]

3 голосов
/ 07 мая 2010

Попробуйте это:

def map = [:]
txt.replaceAll('<.+>', '').trim().eachLine { line ->
   def parts = line.split(',')
   map[parts[0].trim()] = parts[1].trim().toInteger()
}
2 голосов
/ 07 мая 2010
   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() 

// Будет напечатано: карта содержит ["FovCounting": "598", "ID": "1", "FovCount": "600"]

Ваша проблема в том, что содержимое между тегами должно сохранять одинаковый формат, иначе этот код будет поврежден

0 голосов
/ 07 мая 2010
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...