在迭代过程中对结果集进行排序

时间:2012-06-06 08:45:45

标签: groovy

给定的是包含以下内容的xml文件

<ROOT>
  <Group Name="Database"> 
     <User Name="Thorsten"/>
     <User Name="Karl"/>
     <User Name="Beate"/>
     <User Name="Heinz"/>
     <User Name="Andreas"/>
  </Group>
</ROOT>

现在我可以用像这样的groovy脚本来阅读它

def out = "";
def result = new XmlSlurper().parse(new File("D:\\User.xml"));
result.Group.User.each {
out += it.@Name.text()+ '\n';
}
println out;

输出按照它们出现在XML文件中的顺序

Thorsten
Karl
Beate
Heinz
Andreas

是否可以按字母顺序对迭代过程中的结果集进行排序?

乔治

1 个答案:

答案 0 :(得分:2)

迭代期间?当然不是。

但是如果你使用XmlParser,你可以这样做:

def doc = new XmlParser().parse(new File("users.xml"));
foo = doc.Group.User.sort { it.@Name }.collect { it.@Name }.join("\n")
println foo

哪个输出:

Andreas
Beate
Heinz
Karl
Thorsten