2010-08-24 9 views
3

J'ai regardé la documentation sur XML avec le tri GroovyTri XML dans Groovy

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

mais ce que je suis en train de faire est une sorte XML, puis retourner la chaîne xml triée. Je sais que je peux complètement reconstruire le XML après que j'ai fini le tri.

Je sais que je peux exécuter une transformation XML au XML pour l'obtenir triée

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

MAIS je cherchais quelque chose de magique Groovy pour le rendre plus facile pour moi

Répondre

4

Une solution est de remplacer directement la liste des car dans le records. Pas sûr si plus de magie existe!

records.value = records.car.sort{ it.'@year'.toInteger() } 
println XmlUtil.serialize(records) 
+0

va essayer ... J'ai trouvé une solution mais je pense que c'est plus facile. –