java,dom4j读取存储xml文件!

来源:互联网 发布:淘宝,女生韩版西装图片 编辑:程序博客网 时间:2024/06/10 10:20

/*
 * Created on 2005-1-20
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
package com.beltino.communitymedical.check;
import java.io.*; //Java基础包,包含各种IO操作

import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.*;
import com.beltino.communitymedical.check.CheckTemplet;
import java.util.*;
/**
 * @author Administrator
 *
 * TODO To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
public class ImportExportTempBean {
 private CheckTemplet checkTempBean=new CheckTemplet();
 
 //生成带体检内容的xml文件
 public void createCheckTemple(String tempName){
        Document document = DocumentHelper.createDocument();
        HashMap hmTreeNode=null;  //顶级目录
        ArrayList nodeTopList = null;  //二级目录
        ArrayList nodeTwoList = null;  //三级目录
        ArrayList nodeTreeList= null;  //四级目录
        ArrayList nodeFourList= null;  //五级目录
        hmTreeNode=checkTempBean.getTreeNodeByName(tempName);
        Element treeNode = document.addElement("TreeNode").addAttribute("name",hmTreeNode.get("name").toString()).addAttribute("memo",hmTreeNode.get("memo").toString());
 
        nodeTopList=checkTempBean.getTwoCheckType(Integer.parseInt(hmTreeNode.get("autoid").toString()));
        for(int i=0;i<nodeTopList.size();i++){
          Element nodeTop=treeNode.addElement("nodeTop").addAttribute("item",((Check)nodeTopList.get(i)).getCheckName()).addAttribute("memo",((Check)nodeTopList.get(i)).getCheckMemo());        
          nodeTwoList=checkTempBean.getThreeCheckType(String.valueOf(((Check)nodeTopList.get(i)).getAutoId()));
          for(int j=0;j<nodeTwoList.size();j++){
            Element nodeTwo=nodeTop.addElement("nodeTwo").addAttribute("item",((Check)nodeTwoList.get(j)).getCheckName()).addAttribute("memo",((Check)nodeTwoList.get(j)).getCheckMemo());
            nodeTreeList=checkTempBean.getFourCheckType(String.valueOf(((Check)nodeTwoList.get(j)).getAutoId()));
            for(int k=0;k<nodeTreeList.size();k++){
              Element nodeTree=nodeTwo.addElement("nodeTree").addAttribute("item",((Check)nodeTreeList.get(k)).getCheckName()).addAttribute("type",((Check)nodeTreeList.get(k)).getChecktype()).addAttribute("memo",((Check)nodeTreeList.get(k)).getCheckMemo()).addAttribute("default",((Check)nodeTreeList.get(k)).getDefaultData());
              nodeFourList=checkTempBean.getFiveCheckType(String.valueOf(((Check)nodeTreeList.get(k)).getAutoId()));
              for(int m=0;m<nodeFourList.size();m++){
                 Element nodeFour=nodeTree.addElement("nodeDown").addText(((Check)nodeFourList.get(m)).getCheckName());  
              }
            }
          }
        }
        saveDocument(document);
 }
 
 //把XML中的数据导入到数据库
 public boolean importDocument(String fileName){
   Document checkDataDoc=readXml(fileName);
     Element rootElement=checkDataDoc.getRootElement();
   String treeNodeName=rootElement.attributeValue("name");
   String treeNodeMemo=rootElement.attributeValue("memo");
   //处理TreeNode主结点
   boolean retBool=checkTempBean.importXmlData_TreeNode(treeNodeName,treeNodeMemo);
        if(retBool==false){
           return false;
        }
        //处理nodeTop结点
   List nodeTopList=rootElement.elements("nodeTop");
   for(int i=0;i<nodeTopList.size();i++){
          Element nodeTopElement=(Element)nodeTopList.get(i);
     String nodeTopItem=nodeTopElement.attributeValue("item");  
     String nodeTopMemo=nodeTopElement.attributeValue("memo");
     checkTempBean.insertNodeTop(treeNodeName,nodeTopItem,nodeTopMemo);
     //处理nodeTwo结点
     List nodeTwo=nodeTopElement.elements("nodeTwo");
          for(int j=0;j<nodeTwo.size();j++){
              Element nodeTwoElement=(Element)nodeTwo.get(j);
              String nodeTwoItem=nodeTwoElement.attributeValue("item");
              String nodeTwoMemo=nodeTwoElement.attributeValue("memo");
              checkTempBean.insertNodeTree(treeNodeName,nodeTopItem,nodeTwoItem,nodeTwoMemo);
              //处理nodeTree结点
              List nodeTwoList=nodeTwoElement.elements("nodeTree");
              for(int k=0;k<nodeTwoList.size();k++){
                 Element nodeTreeElement=(Element)nodeTwoList.get(k);
                 String nodeTreeItem=nodeTreeElement.attributeValue("item");
                 String nodeTreeMemo=nodeTreeElement.attributeValue("memo");
                 String nodeTreeType=nodeTreeElement.attributeValue("type");
                 String nodeTreeTypeInput="0";
                 if("selectInput".equals(nodeTreeType)){
                   nodeTreeTypeInput="2";
                 }else if("textInput".equals(nodeTreeType)){
                   nodeTreeTypeInput="0";
                 }else if("radioInput".equals(nodeTreeType)){
                   nodeTreeTypeInput="3";  
                 }else if("checkboxInput".equals(nodeTreeType)){
                   nodeTreeTypeInput="1";  
                 }
                 String nodeTreeDefault=nodeTreeElement.attributeValue("default");
                 checkTempBean.insertNodeFour(treeNodeName,nodeTopItem,nodeTwoItem,nodeTreeItem,nodeTreeMemo,nodeTreeTypeInput,nodeTreeDefault);
              //处理nodeDown结点
                 List nodeTreeList=nodeTreeElement.elements("nodeDown");
                 for(int m=0;m<nodeTreeList.size();m++){
                     Element nodeFourElement=(Element)nodeTreeList.get(m);
                     String nodeText=nodeFourElement.getText();
                     checkTempBean.insertNodeFive(treeNodeName,nodeTopItem,nodeTwoItem,nodeTreeItem,nodeText);
                 }
              }
          }
   }
        return true;
 }
 
 public void saveDocument(Document document){
     try{
           // 美化格式
         OutputFormat format = OutputFormat.createPrettyPrint();
            XMLWriter output = new XMLWriter(new FileOutputStream("c://体检模板.xml"),format);
         output.write( document );
         output.close();
      }catch(IOException e){
       System.out.println(e.getMessage());
      }
 }
 
  public Document readXml(String fileName){
        SAXReader reader = new SAXReader();
        Document document=null;
          try{
          document = reader.read(new File(fileName));
        }catch(Exception e){
             System.out.println(e);          
        }
         return document;
     }  
}