分享

java,dom4j读取存储xml文件!

 冷刃寒冰 2010-12-15
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;
     }  
}

 

发表于 @ 2005年03月29日 17:03:00 | 评论( 3 ) | 编辑| 举报| 收藏

查看最新精华文章 请访问博客首页相关文章
用java发送lotus邮件一个完整例子用Dom4j管理XML文件(增,删,改)用Dom4j管理XML文件(增,删,改)dom4j的基本操作java,dom4j读取存储xml文件!收藏DOM4J对XML文档的读写增删改等dom4j读写xml文件JAVA 操作xmljbas 发表于2005年3月29日 17:06:00 IP:举报回复删除
生成的xml文件:
<?xml version="1.0" encoding="UTF-8"?>

<TreeNode name="老年体检" memo="132">
<nodeTop item="血压" memo="a100">
<nodeTwo item="血压" memo="">
<nodeTree item="mmHG" type="textInput" memo="432" default=""/>
</nodeTwo>
</nodeTop>
<nodeTop item="胸廓" memo="a200">
<nodeTwo item="胸廓" memo="">
<nodeTree item="胸廓" type="selectInput" memo="" default="正常">
<nodeDown>正常</nodeDown>
<nodeDown>扁平</nodeDown>
<nodeDown>桶状</nodeDown>
</nodeTree>
</nodeTwo>
</nodeTop>
<nodeTop item="内科" memo="a300">
<nodeTwo item="呼吸系统" memo="">
<nodeTree item="干湿罗音" type="selectInput" memo="a100" default="无">
<nodeDown>无</nodeDown>
<nodeDown>有</nodeDown>
</nodeTree>
<nodeTree item="哮鸣音" type="selectInput" memo="a200" default="无">
<nodeDown>无</nodeDown>
<nodeDown>有</nodeDown>
jbas 发表于2005年3月29日 17:07:00 IP:举报回复删除
dom4j读取配置文件+初始化Log4j
/*
* Created on 2005-3-2
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package com.beltino.util;


import java.io.File;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import org.apache.log4j.PropertyConfigurator;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
/**
* @author Administrator
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class Log4jInit extends HttpServlet {

/**
* Initialization of the servlet. <br>
*
* @throws ServletException if an error occure
*/
public void init() throws ServletException {
String prefix = getServletContext().getRealPath("/");
String file = getInitParameter("log4j");
if (file != null) {
PropertyConfigurator.configure(prefix + file);
}
String file2 = getInitParameter("projectConfig");
String xmlUrl="";
if (file != null) {
xmlUrl=prefix+file2;
}
Document projectDoc=readXml(xmlUrl);
Element rootElement = projectDoc.getRootElement();
System.out.println("yyyy"+rootElement.elemejbas 发表于2005年3月29日 17:07:00 IP:举报回复删除
配置文件
<?xml version="1.0" encoding="UTF-8"?>

<project>
<!--代表项目名称-->
<name>项目名称</name>
<!--代表项目版本-->
<version>2004</version>
<!--代表项目中档案人号的档案号位数-->
<item>9</item>
<!--代表菜单连接到的地址-->
<url>http://btns:8080/communitymedical</url>
<!--代表连接数据库的参数-->
<database>
<!--所用的数据库类型-->
<sqlDriver>com.microsoft.jdbc.sqlserver.SQLServerDriver</sqlDriver>
<!--所用的JDBC驱动程序-->
<sqlJdbc>jdbc:microsoft:sqlserver://btn12:1433;DatabaseName=CommunityMedical</sqlJdbc>
<!--所用的数据库用户名-->
<sqlUser>sa</sqlUser>
<!--所用的数据库密码-->
<sqlPwd>btn</sqlPwd>
</database>
</project>


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约