解开dom对象,映射到pojo的java对象,用List接口的comparable进行排序

解决方案 »

  1.   

    xml可以用Document   doc   =   DocumentHelper.parseText(String   xml),
    然后用List   list   =   doc.selectNodes(xpath)得到List, 
      

  2.   

    /**
      *   按   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);
            }
      

  3.   

    Object   []   bookArray   =   bookList.toArray();
                   
                    //   按照   name   排序.
                    Arrays.sort(bookArray,   new   BookNameComparator());
                    dumpArray(bookArray);
                   
                    System.out.println( "********** ");
                   
                    //   按照   num   排序.
                    Arrays.sort(bookArray,   new   BookNumComparator()); 
      

  4.   

    谢谢回复。我的意思还要写回去,就是说把执行一次后XML文件已经就排序好了,以后就不需要排序了
      

  5.   

    比如
    <?xml version="1.0" encoding="GBK"?>
    <devices>
     <group name="缺省组">
        <device>
          <ip>172.19.254.1</ip>
          <fname>f86afeab18c8e4c45b151637cfc30dfa.xml</fname>
        </device>
        <device>
          <ip>172.19.90.115</ip>
          <fname>cb9cce01dc992559a6ef1ac9b5b78ada.xml</fname>
        </device>
      </group>
    <group name="测试组" />
    </devices>
    希望按照对group里的数据进行排序,基于ip递增排序,如何做?请给出完整代码。