3

Groovyを使用したXMLのソートに関するドキュメントを見てきました

def records = new XmlParser().parseText(XmlExamples.CAR_RECORDS)
assert ['Royale', 'P50', 'HSV Maloo'] == records.car.sort{ it.'@year'.toInteger() }.'@name'

しかし、私がやろうとしているのは、XML をソートしてから、ソートされた xml 文字列を返すことです。並べ替えが完了したら、XML を完全に再構築できることを知っています。

XML で XML Transformation を実行して並べ替えることができることを知っています。

def factory = TransformerFactory.newInstance()
def transformer = factory.newTransformer(new StreamSource(new StringReader(xslt)))
transformer.transform(new StreamSource(new StringReader(input)), new StreamResult(System.out))

しかし、私はそれを簡単にするためのGroovyマジックを探していました

4

1 に答える 1

4

car解決策は、内のリストを直接置き換えることrecordsです。もっと魔法が存在するかどうかわからない!

records.value = records.car.sort{ it.'@year'.toInteger() }
println XmlUtil.serialize(records)
于 2010-08-24T21:22:36.043 に答える