不知道 XML 里面能不能处理。不过,如果你已经把数据从 XML 中读取出来,存储为列表的话,可以参考下面的办法来排序。
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;public class TestSort {    public static void main(String[] args) {
        // 测试的数据.
        Book book1 = new Book("aa", 3);
        Book book2 = new Book("bb", 5);
        Book book3 = new Book("cc", 2);
        Book book4 = new Book("ccc", 1);
        // 构成List.
        List bookList = new ArrayList();
        bookList.add(book1);
        bookList.add(book2);
        bookList.add(book3);
        bookList.add(book4);
        // 转换成数组.
        Object [] bookArray = bookList.toArray();
        
        // 按照 name 排序.
        Arrays.sort(bookArray, new BookNameComparator());
        dumpArray(bookArray);
        
        System.out.println("**********");
        
        // 按照 num 排序.
        Arrays.sort(bookArray, new BookNumComparator());
        dumpArray(bookArray);
    }
    
    // 测试输出.
    public static void dumpArray(Object [] bookArray) {
        for(int i = 0; i < bookArray.length; i ++) {
            System.out.println(bookArray[i]);
        }
    }}class Book {
    public String name;
    public int num;
    public Book(String name, int num) {
        this.name = name;
        this.num = num;
    }
    public String toString() {
        return name + ":" + num;
    }
}/**
 * 按 name 进行比较. 
 */
class BookNameComparator implements Comparator {
    public int compare(Object o1, Object o2) {
        Book book1 = (Book)o1;
        Book book2 = (Book)o2;
        return book1.name.compareTo(book2.name);
    }
}/**
 * 按 num 进行比较. 
 */
class BookNumComparator implements Comparator {
    public int compare(Object o1, Object o2) {
        Book book1 = (Book)o1;
        Book book2 = (Book)o2;
        return book1.num - book2.num;
    }
}
-----------------------------
运行结果:
aa:3
bb:5
cc:2
ccc:1
**********
ccc:1
cc:2
aa:3
bb:5