通過dom4j對xml文件的讀取操作工具類封裝

nifengzhuizhao發表於2014-11-26
通過dom4j對xml文件的讀取操作。

下面給出兩個工具類:XmlDom4jUtil.java與Configure.java

-----XmlDom4jUtil.java

import java.io.File;
import java.io.FileOutputStream;
import java.util.Iterator;
import java.util.List;

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;

public class XmlDom4jUtil {
 
 /**
  * description:從XML文件到Document物件,如果XML文件不存在,則返回的Document物件為空。
  * 解析.xml檔案成一個 Document 物件
  * @param filePath eg.xml檔案所在路徑或檔名
  * @return
  */
 public Document createDocXMLFile(String filePath){
  Document document = null;
  File file = new File(filePath);
  if(file.exists()){
   try{
             SAXReader saxReader = new SAXReader();
             document = saxReader.read(new File(filePath));               
         }catch(Exception ex){
             ex.printStackTrace();
         }
  }
  return document;
 }
 
 /**
  * description:從Document物件到XML文件 如果Document為空或filePath為空,則返回更新失敗false。
  * 將經過處理的Document 物件轉化為物理儲存檔案xml存放到filePath路徑上
  * @param document 
  * @param filePath  將要生成的xml文件存放到的路徑
  * @return
  */
 public boolean updateXMLFileDoc(Document document,String filePath){
  boolean result = false;
  if(document==null||filePath==null){
   return false;
  }  
  try{          
             XMLWriter writer = null;
             /** 格式化輸出,型別IE瀏覽一樣 */
             OutputFormat format = OutputFormat.createPrettyPrint();
             /** 指定XML編碼 */
             format.setEncoding("UTF-8");
             //不要用 FileWriter 輸出雙位元組,改為 FileOutputStream 輸出單位元組:
             writer= new XMLWriter(new FileOutputStream(new File(filePath)),format);
             writer.write(document);
             writer.close();     
             /** 執行成功,需返回1 */
             result = true; 
         }catch(Exception ex){
             ex.printStackTrace();
         }
     return result;
 }
}

---Configure.java

import org.dom4j.Document;

import com.hymake.hyplat.app.util.AppClassUtil;
import com.hymake.hyplat.app.util.XmlDom4jUtil;

public class Configure {
 
 private String filename ="";
 
    public Configure(String fileName){
     this.filename = fileName.trim();
    }
   
    //"//approval-config.xml"
    /**
     * 獲得配置檔案對應的Document物件
     */
    public Document getCurrentDoc(){
  XmlDom4jUtil xmlUtil = new XmlDom4jUtil();
  String filePath = AppClassUtil.getClassRootPath(this.getClass())+"//"+filename;
  Document doc = xmlUtil.createDocXMLFile(filePath);
  return doc;
 }
   
    /**
     * 獲得配置檔案在應用的絕對路徑
     * @return
     */
    public String getAbsoluteFilePath(){
     return AppClassUtil.getClassRootPath(this.getClass())+"//"+filename;
    }
   
}

相關文章