數據庫部門數據生成xml樹

部門bean主要代碼

    private String deptname;//部門名稱
    private String deptcode;//部門編碼
    private String fdeptcode;//上級部門編碼
    private String isleaf;//是否爲葉子部門
    private List<Dep> children;//子部門集合
    private String id;//部門id
    //設置如何獲取子部門
    public void setChildren(String fdeptcode) {
        if(isleaf.equals("1")){
        }else{
            List<Dep> listDep=new ArrayList<Dep>();
            DbConn db=new DbConn();
            ResultSet rst=null;
            
            String sql1="select deptcode from comdept where fdeptcode='"+fdeptcode+"'";
            try {
                rst=db.executeQuery(sql1);
                while(rst.next()){
                    String depcode=rst.getString("deptcode");
                    //調用構造方法如果dep還有子部門也會放到dep下
                    Dep dep=new Dep(depcode);
                    listDep.add(dep);
                }
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            this.children = listDep;
        }

    }
    //構造方法
    public Dep(String deptcode){
        this.deptcode=deptcode;
        setAll(deptcode);
        setChildren(deptcode);
    }

  向xml寫樹形目錄代碼

public class WriteToXml {
    static List<Dep> listdep=new Dep("0000"); //0000爲部門根
    Element  root=DocumentHelper.createElement("Dep");
    Document doc=DocumentHelper.createDocument();
    public  void Write(List<Dep> listdep,Element element){

            for(Dep dep:listdep){
                //添加節點名字爲部門名字
                Element menuElement = element.addElement(dep.getDeptname());
                //向節點添加屬性deptcode,value爲部門id
                Attribute att=DocumentHelper.createAttribute(menuElement, "deptcode",dep.getDeptcode());
                menuElement.add(att);
                if(dep.getChildren()!=null&&dep.getChildren().size()>0){
                    Write(dep.getChildren(),menuElement); 
                }
            }
    }
    public void WriteAll(String path){
        //全部節點寫到root節點
        Write(listdep,root);
        try{

            XMLWriter xmlwriter=new XMLWriter(new FileWriter(new File(path)));
            doc.add(root);
            xmlwriter.write(doc);
            xmlwriter.close();
        }catch(IOException e){
            e.printStackTrace();
        }
    }
    public static void main(String[] args) {
        WriteToXml t=new WriteToXml();
        t.WriteAll("E://test.xml");
    }
}

好不容易終於大概知道xml是怎麼寫的了...下一步再把xml形成html的樹形目錄。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章