java无忧网

标题: 解析xml文件:要求先读入一个xml文件,然后解析,然后排序,排序是按两种规则 [打印本页]

作者: java无忧网    时间: 2016-7-20 08:23
标题: 解析xml文件:要求先读入一个xml文件,然后解析,然后排序,排序是按两种规则
要求先读入一个xml文件,然后解析,然后排序,排序是按两种规则,一是子树大小,这个大小是计算包括子树的根节点在内的节点的个数,把小的子树排在前面,大的排在后面。当子树大小一样的时候,再按字母顺序排序,a<b<c<d这样的,也可以根据ASCII排序,最后输出排好序的xml文件。
后来导师又要求吧读入的子树当一个string,还是先比大小,大小一样再按顺序输出。


这是导师给的伪代码,就是先按大小比,一样大小的再比字母顺序
static class nodeInf implements Comparable<nodeInf> {
        int size;
        String trav;
        public int compareTo(nodeInf e1){
            if((this.size-e1.size) == 0) return(this.trav.compareTo(e1.trav));
            else return(this.size - e1.size);
        }
     }

然后又给了个递归的方法,每个子树都返回一个nodeInf的object,这个对象包含了大小和遍历出来的string
  public static nodeInf getInf(Node u) {
.
.
.
.
        for(int i=0; i<nlist.getLength(); i++) {
            if(typeName[nlist.item(i).getNodeType()] == "Element") {
                cArray[j] = getInf(nlist.item(i));
                res.size = res.size + cArray[j].size;
                j = j+1;
            }
        }

        Arrays.sort(cArray,0,j);
        for(int i=0; i<j; i++) res.trav = res.trav + cArray.trav;
        res.trav = res.trav + "</" + nname + ">";
        return(res);
     }






运行截图:






下载地址:

**** 本内容需购买 ****










欢迎光临 java无忧网 (http://www.javawyw.com/) Powered by Discuz! X3.2