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>