2014-10-13 5 views
-1

Я новичок в заводной Может кто-нибудь помочь разобрать этот XML, чтобы получить список значений каждого элемента NumGroovy синтаксического анализа XML

NAMES> 
    <NAMESet fetchSize="3"> 
    <String StringNumber="1"> 
     <NUM>1</NUM> 
    </String> 
    <String StringNumber="2"> 
     <NUM>2</NUM> 
    </String> 
    <String StringNumber="3"> 
     <NUM>3</NUM> 
</NAMESet> 

спасибо заранее!

+3

Эй, [Google является вашим другом] (https: // зашифрованы. google.com/search?hl=en&q=groovy%20parse%20xml). Вы пробовали [первую ссылку] (http://groovy.codehaus.org/Reading+XML+using+Groovy%27s+XmlSlurper)? Это официальный документ для groovy и xml. Если у вас возникли проблемы с этим, опубликуйте информацию о том, что произошло. – Will

+3

Кроме того, XML выглядит довольно сломанным. Это проблема? – Will

+3

Также покажите нам свой код – cfrick

ответ

0

наконец, написал так:

def records = new XmlParser().parseText(xml) 
def size = records.ResultSet.Row.ID.size() 
println(size) 
def allRecords = records.ResultSet.Row.ID[1].text() 
println(allRecords) 
for (int i = 0; i < size; i++) { 
println(records.ResultSet.Row.ID[i].text()) 
} 

в любом случае, спасибо

+0

Но это даже не тот же XML вы отправили в свой вопрос – Will

+0

да, та же идея здесь – Leo

0

XML довольно сломан, но cyberneko может решить это. Это создает некоторые HTML структуру, хотя:

xml=''' NAMES> 
    <NAMESet fetchSize="3"> 
    <String StringNumber="1"> 
     <NUM>1</NUM> 
    </String> 
    <String StringNumber="2"> 
     <NUM>2</NUM> 
    </String> 
    <String StringNumber="3"> 
     <NUM>3</NUM> 
</NAMESet>''' 


names = new XmlSlurper(new org.cyberneko.html.parsers.SAXParser()).parseText xml 

assert names.BODY.NAMESET.STRING.NUM.collect { it.text() } == 
    ['1', '2', '3']