⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xmlfiletools.java

📁 电子邮件收发系统,采用各种技术进行研究开发适用大学生课程设计
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package net.meybo.util;

import java.io.*;

import org.apache.log4j.Logger;
import org.dom4j.Document;

import org.dom4j.io.SAXReader;

/***************************************
 * <p>Title: 邮件服务器</p>
 * <p>Description: XML文件处理程序</p>
 * <p>Copyright: Copyright (c) 2006</p>
 * <p>Company: 脉博软件</p>
 * @author 阚吉彬
 * @version 1.0
 ***************************************/

public class XmlFileTools {
private static final Logger logger = (Logger) Logger.getLogger(XmlFileTools.class.getName());
  public XmlFileTools() {
  }
  public static synchronized Document load(String fileName) {
	  Document document = null;
      try {
      	 SAXReader reader = new SAXReader();      	
   	    File file=new File(fileName);
   	    document = file.exists()?reader.read(fileName):null;
   	           
      } catch(Exception e) {
        System.out.println("Load xml string error!"+ e);
      }
      return document;
  }
  public static synchronized boolean write(String fileName,Document doc)
  {
	  boolean ret=false;
	  try{
	  Writer writer=new FileWriter(fileName); 
	  doc.setXMLEncoding("gbk");	
	  writer.write(doc.asXML());
	  //doc.write(writer);
	  writer.close();
	  ret=true;
	  }
	  catch(Exception e)
	  {
		  logger.error("写文件错误!"+e);
	  }
	  return ret;
  }
  /*
  //create empty xml file
  public synchronized static boolean createFile(String filePath,String rootNodeName){
    File file=new File(filePath);
    if(!file.exists()){   //
       try{
         file.createNewFile();
         DataOutputStream dos = new DataOutputStream(new FileOutputStream(file));
         dos.writeBytes("<?xml version='1.0' encoding='UTF-8'?><" + rootNodeName +"></" + rootNodeName + ">");
         dos.close();
         dos = null;
       }
       catch(Exception e){
         LogManage.addLog("exception", DateFormat.formatDateYMDHMS(new java.util.Date())+" xmlFileManage1:"+e);
         logger.error(e.getMessage());
         return false;
       }
    }
    return true;
  }

  //add one subnode
  public synchronized static int addNode(String filePath,String nodeName,String subNodeName,String subNodeValue) {
    int reValue=0;   //succesful
    DocumentBuilderFactory factory =null;
    DocumentBuilder builder =null;
    Document doc =null;

    TransformerFactory tFactory =null;
    Transformer transformer = null;
    DOMSource source =null;
    StreamResult result =null;

    if(subNodeValue.trim().equals("")) subNodeValue=" ";

    try{
      factory = DocumentBuilderFactory.newInstance();
      builder = factory.newDocumentBuilder();
      doc = builder.parse(filePath);
      doc.normalize();

      NodeList links =doc.getElementsByTagName(nodeName);
      for(int i=0;i<links.getLength();i++){
        Element link=(Element)links.item(i);

        Text textseg;   //text value subnode

        Element name =doc.createElement(subNodeName);   //sub name node
        textseg = doc.createTextNode(subNodeValue);    //node value
        name.appendChild(textseg);
        link.appendChild(name);
      }

      tFactory = TransformerFactory.newInstance();
      transformer = tFactory.newTransformer();
      source = new DOMSource(doc);
      result = new StreamResult(new java.io.File(filePath));
      transformer.transform(source, result);
    }
    catch(Exception e){
      LogManage.addLog("exception", DateFormat.formatDateYMDHMS(new java.util.Date())+" xmlFileManage2:"+e);
      logger.error(e.getMessage());
      reValue=2;    //error
    }
    finally{
      doc = null;
      builder = null;
      factory = null;
      result = null;
      source = null;
      transformer = null;
      tFactory = null;
    }
    return reValue;
  }

  //add many subnode
  public synchronized static int addNode(String filePath,String nodeName,String[] subNodeName,String[] subNodeValue) {
    int reValue=0;   //succesful
    DocumentBuilderFactory factory =null;
    DocumentBuilder builder =null;
    Document doc =null;

    TransformerFactory tFactory =null;
    Transformer transformer = null;
    DOMSource source =null;
    StreamResult result =null;
    try{
      factory = DocumentBuilderFactory.newInstance();
      builder = factory.newDocumentBuilder();
      doc = builder.parse(filePath);
      doc.normalize();

      NodeList links =doc.getElementsByTagName(nodeName);
      for(int i=0;i<links.getLength();i++){
        Element link=(Element)links.item(i);
        int nodeNumber=link.getChildNodes().getLength();
        if(nodeNumber==1){
          Text textseg; //text value subnode
          for (int m = 0; m < subNodeName.length; m++) {
            Element name = doc.createElement(subNodeName[m]); //sub name node
            if (subNodeValue[m].trim().equals(""))
              subNodeValue[m] = " ";
            textseg = doc.createTextNode(subNodeValue[m]); //node value
            name.appendChild(textseg);
            link.appendChild(name);
          }
        }
      }

      tFactory = TransformerFactory.newInstance();
      transformer = tFactory.newTransformer();
      source = new DOMSource(doc);
      result = new StreamResult(new java.io.File(filePath));
      transformer.transform(source, result);
    }
    catch(Exception e){
      LogManage.addLog("exception", DateFormat.formatDateYMDHMS(new java.util.Date())+" xmlFileManage3:"+e);
      logger.error("addNode Exception:"+e);
      reValue=2;    //error
    }
    finally{
      doc = null;
      builder = null;
      factory = null;
      result = null;
      source = null;
      transformer = null;
      tFactory = null;
    }
    return reValue;
  }

  //delete one subnode
  public synchronized static int delNode(String filePath,String nodeName,String subNodeName,String subNodeValue) {
    int reValue=0;   //succesful
    DocumentBuilderFactory factory =null;
    DocumentBuilder builder =null;
    Document doc =null;

    TransformerFactory tFactory =null;
    Transformer transformer = null;
    DOMSource source =null;
    StreamResult result =null;

    try{
      factory = DocumentBuilderFactory.newInstance();
      builder = factory.newDocumentBuilder();
      doc = builder.parse(filePath);
      doc.normalize();

      NodeList links =doc.getElementsByTagName(nodeName);
      for (int i=0;i<links.getLength();i++){
        Element link=(Element)links.item(i);
        NodeList names =link.getElementsByTagName(subNodeName);
        for (int j=0;j<names.getLength();j++){
          Element name=(Element)names.item(j);
          String nodeValue=name.getFirstChild().getNodeValue().trim();
          if(nodeValue.trim().toLowerCase().equals(subNodeValue.trim().toLowerCase())){
             link.removeChild(name);
             break;
          }
        }
      }

      tFactory = TransformerFactory.newInstance();
      transformer = tFactory.newTransformer();
      source = new DOMSource(doc);
      result = new StreamResult(new java.io.File(filePath));
      transformer.transform(source, result);
    }
    catch(Exception e){
      LogManage.addLog("exception", DateFormat.formatDateYMDHMS(new java.util.Date())+" xmlFileManage4:"+e);
      logger.error(e.getMessage());
      reValue=2;    //error
    }
    finally{
      doc = null;
      builder = null;
      factory = null;
      result = null;
      source = null;
      transformer = null;
      tFactory = null;
    }
    return reValue;
  }

  //del same level all sub node
  public synchronized static int delAllSubNode(String filePath,String nodeName,String subNodeName,String subNodeValue) {
    int reValue=0;   //succesful
    DocumentBuilderFactory factory =null;
    DocumentBuilder builder =null;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -