jdom處理的XML Document 和String 之間的相互轉化

package util;


import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileWriter;
import java.io.StringReader;

import org.jdom.Document;   
import org.jdom.input.SAXBuilder;   
import org.jdom.output.Format;   
import org.jdom.output.XMLOutputter;   
  
/**  
 * JDOM 方式操作XML  
 *   
 * @author Watson Xu  
 * @date 2011-5-3 下午02:20:49  
 */  
public class OperationXMLByJdom {   
    /**  
     * DOCUMENT格式化輸出保存爲XML  
     *   
     * @param doc JDOM的Document  
     * @param filePath 輸出文件路徑  
     * @throws Exception  
     */  
    public static void doc2XML(Document doc, String filePath) throws Exception{   
        Format format = Format.getCompactFormat();    
        format.setEncoding("UTF-8"); //設置XML文件的字符爲UTF-8   
        format.setIndent("     ");//設置縮進    
       
        XMLOutputter outputter = new XMLOutputter(format);//定義輸出 ,在元素後換行,每一層元素縮排四格    
        FileWriter writer = new FileWriter(filePath);//輸出流   
        outputter.output(doc, writer);   
        writer.close();   
    }   
       
    /**  
     * 字符串轉換爲DOCUMENT  
     *   
     * @param xmlStr 字符串  
     * @return doc JDOM的Document  
     * @throws Exception  
     */  
    public static Document string2Doc(String xmlStr) throws Exception {   
        java.io.Reader in = new StringReader(xmlStr);   
        Document doc = (new SAXBuilder()).build(in);          
        return doc;   
    }   
  
    /**  
     * Document轉換爲字符串  
     *   
     * @param xmlFilePath XML文件路徑  
     * @return xmlStr 字符串  
     * @throws Exception  
     */  
    public static String doc2String(Document doc) throws Exception {   
        Format format = Format.getPrettyFormat();   
        format.setEncoding("UTF-8");// 設置xml文件的字符爲UTF-8,解決中文問題   
        XMLOutputter xmlout = new XMLOutputter(format);   
        ByteArrayOutputStream bo = new ByteArrayOutputStream();   
        xmlout.output(doc, bo);   
        return bo.toString();   
    }   
  
    /**  
     * XML轉換爲Document  
     *   
     * @param xmlFilePath XML文件路徑  
     * @return doc Document對象  
     * @throws Exception  
     */  
    public static Document xml2Doc(String xmlFilePath) throws Exception {   
        File file = new File(xmlFilePath);   
        return (new SAXBuilder()).build(file);   
    }   
       
    public static void main(String[] args) {   
        try{   
            Document doc = xml2Doc("test.xml");   
            System.out.println(doc);   
            System.out.println(doc2String(doc));   
            doc = string2Doc(doc2String(doc));   
            doc2XML(doc, "1.xml");   
        } catch (Exception e) {   
            e.printStackTrace();   
        }   
           
    }   
}  


發佈了47 篇原創文章 · 獲贊 0 · 訪問量 27萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章