2010-08-24 32 views
3

排序XML我已經看過的文件分揀XML使用Groovy在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

一種解決方法是直接替換records內的car列表。不知道是否有更多的魔法存在!

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

會給它一個嘗試......我找到了一個解決方案,但我認爲這很容易。 – 2010-08-24 22:44:40