Groovy Parse XML
Я новичок в Groovy Может кто-нибудь помочь разобрать этот XML для получения списка значений каждого элемента Num
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>
заранее спасибо!
2 ответа
Решение
Наконец, написал так:
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())
}
в любом случае, спасибо
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']