Сортировка XML в Groovy - PullRequest
       30

Сортировка XML в Groovy

3 голосов
/ 24 августа 2010

Я посмотрел документацию по сортировке 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, чтобы мне было легче

1 Ответ

4 голосов
/ 25 августа 2010

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

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