Code/Resource
Windows Develop
Linux-Unix program
Internet-Socket-Network
Web Server
Browser Client
Ftp Server
Ftp Client
Browser Plugins
Proxy Server
Email Server
Email Client
WEB Mail
Firewall-Security
Telnet Server
Telnet Client
ICQ-IM-Chat
Search Engine
Sniffer Package capture
Remote Control
xml-soap-webservice
P2P
WEB(ASP,PHP,...)
TCP/IP Stack
SNMP
Grid Computing
SilverLight
DNS
Cluster Service
Network Security
Communication-Mobile
Game Program
Editor
Multimedia program
Graph program
Compiler program
Compress-Decompress algrithms
Crypt_Decrypt algrithms
Mathimatics-Numerical algorithms
MultiLanguage
Disk/Storage
Java Develop
assembly language
Applications
Other systems
Database system
Embeded-SCM Develop
FlashMX/Flex
source in ebook
Delphi VCL
OS Develop
MiddleWare
MPI
MacOS develop
LabView
ELanguage
Software/Tools
E-Books
Artical/Document
XmlFileTools.java
Package: meybomailweb.rar [view]
Upload User: gtz2001
Upload Date: 2016-12-29
Package Size: 2489k
Code Size: 16k
Category:
WEB Mail
Development Platform:
Java
- 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;
- 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 roots =doc.getElementsByTagName("root");
- Element root=(Element)roots.item(0);
- NodeList links =doc.getElementsByTagName(nodeName);
- for (int i=(links.getLength()-1);i>=0;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())){
- root.removeChild(link);
- //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())+" xmlFileManage5:"+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;
- }
- //modify subnode
- public synchronized static int modifyNode(String filePath,String nodeName,String subNodeName,String subNodeValue,String newSubNodeValue) {
- 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())){
- name.getFirstChild().setNodeValue(newSubNodeValue);
- 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())+" xmlFileManage6:"+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;
- }
- //get node value
- public synchronized static String getNodeValue(String filePath,String nodeName,String subNodeName){
- String reValue="";
- try{
- DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
- DocumentBuilder builder=factory.newDocumentBuilder();
- Document doc=builder.parse(filePath);
- doc.normalize();
- NodeList nodeNames =doc.getElementsByTagName(nodeName);
- for (int i=0;i<nodeNames.getLength();i++){
- Element nodeNameElm = (Element) nodeNames.item(i);
- NodeList subNodeNames = nodeNameElm.getElementsByTagName(subNodeName);
- for (int j = 0; j < subNodeNames.getLength(); j++) {
- Element subNodeNameElm = (Element) subNodeNames.item(j);
- String strTmp = subNodeNameElm.getFirstChild().getNodeValue();
- if (reValue.equals(""))
- reValue = strTmp;
- else
- reValue += "*%*" + strTmp;
- }
- }
- doc=null;
- builder=null;
- factory=null;
- }
- catch(Exception e){
- LogManage.addLog("exception", DateFormat.formatDateYMDHMS(new java.util.Date())+" xmlFileManage7:"+e);
- logger.error("getNodeValue exception:"+e);
- return ""; //error
- }
- logger.debug(reValue);
- return reValue;
- }
- //check node whether already exists
- public synchronized static int isExists(String filePath,String nodeName,String subNodeName,String subNodeValue) {
- int reValue=-1; //not exists
- DocumentBuilderFactory factory =null;
- DocumentBuilder builder =null;
- Document doc =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())){
- reValue=0; //exists
- break;
- }
- }
- }
- }
- catch(Exception e){
- LogManage.addLog("exception", DateFormat.formatDateYMDHMS(new java.util.Date())+" xmlFileManage8:"+e);
- logger.error(e.getMessage());
- reValue=2; //error
- }
- finally{
- doc = null;
- builder = null;
- factory = null;
- }
- return reValue;
- }
- //delete first value is key sub node,formate is 'domainName|admin1|admin2|....'
- public synchronized static int delFirstValueIsKeyNode(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();
- nodeValue=CommUtil.getFirstValue(nodeValue,"|");
- 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())+" xmlFileManage9:"+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;
- }
- */
- }