2010-08-24 6 views
3

Я посмотрел на документацию по сортировочной XML с GroovyСортировка XML в Groovy

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 выкручиваться

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

Решение состоит в том, чтобы сразу заменить список car в пределах records. Не уверен, существует ли еще магия!

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

даст вам попробовать ... Я нашел решение, но я думаю, что это проще. –