我有一个XML格式的API回复如下:
<SearchReply>
<Status>
SUCCESS
</Status>
<Itinerary>
<Ticket>
Boston
</Ticket>
<Price>
10.00
</Price>
<Contract>
A
<Contract>
<Contract
B
</Contract>
</SearchReply>
我可以整天浏览行程节点并收集所有数据。
假设XML回复位于变量doc
中。 doc.text()
将包含整个回复。 doc.Contracts.text()
结束AB
。我想收集A
然后B
等等,按字母顺序将它们放在arraylist
中,对于我的生活,我无法理解。
我无法对AB
执行任何操作,因为这些契约值可能是任意长度的字符串,因此无法解析它。
帮助!
答案 0 :(得分:0)
这应该可以解决问题(我纠正了XML中的一些解析问题,我认为这些问题并不存在于真正的XML中)。对sort
的调用将按字典顺序排序,而不是按字母顺序排序。
def contracts = new XmlSlurper().parseText(''' <SearchReply>
<Status>
SUCCESS
</Status>
<Itinerary>
<Ticket>
Boston
</Ticket>
<Price>
10.00
</Price>
</Itinerary>
<Contract>
B
</Contract>
<Contract>
A
</Contract>
</SearchReply>''').Contract
.collect { it.text().trim() }
.sort()
assert contracts == ['A', 'B']