1. 程式人生 > >jdom處理的XML Document 和String 之間的相互轉化

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();   
        }   
           
    }   
}  


相關推薦

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

package util; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileWriter; import java.io.StringReader; impor

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

package util; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileWriter; import java.io.String

xml檔案DataTable之間相互轉換

using System.Xml; using System.Xml.Serialization; /// <summary> /// 下面兩個方法實現xml

Map型別String型別相互轉化

Map轉換成String /**  * 方法名稱:transMapToString  * 傳入引數:map  * 返回值:String 形如 username'chenziwen^password'1234  */   public static String trans

SOS, 請教:XMLstruct之間相互轉換的問題

現在配置基本都像XML方向轉變。那麼, 1、以前是按struct大小直接寫入檔案的,反過來,就直接按struct大小讀入struct就可以了,簡潔; 2、轉XML後,涉及到struct到xml節點之間的相互轉換,這個非常多的重複程式碼。而且太繁瑣,舉個例子,假設一個配置struct有100個欄位,

byte陣列String之間相互轉換程式碼

public static String converByteToString(byte[] data) { ByteArrayInputStream byteInput = null; GZIPInputStream gzin = null; ByteArra

使用boost庫處理 int 、float、string之間相互轉換

我在網上找了一個別人已經編譯好的boost 開啟vs2013 ,新建一個c++控制檯工程: #include "stdafx.h" #include <boost/lexical_cast.hpp> #in

Date String 之間相互裝換 util.datesql.date轉換

public static void main(String[] args) { Date date = new Date(); long time = date.getTime(); System.out.println(t

QStringstring相互轉換及亂碼處理

String和QString之間的轉化 資料結構課程設計中,用Qt玩圖形化,經常因為QString和string的轉化出現問題,而出現一些莫名其妙的錯誤。 垃圾百度找了半天沒有解決方案,多虧了成都-賤賤O_o噠大神的相助。(適用於QT5) QStrin

C# DataTable List之間相互轉換的方法

dbn execute 屬性 ins 集合 方法 summary efault getprop 一、List<T>/IEnumerable轉換到DataTable/DataView private DataTable ToDataTable<T>(

Android 單位dppx之間相互轉換

style pan static float logs ati col return roi public class DensityUtil { /** * 根據手機的分辨率從 dp 的單位 轉成為 px(像素) */

linux中常用時間字符串之間相互轉化

時間函數 spa lin cell form time函數 地理 -1 名稱 在Linux中經常會遇到時間和字符串相互轉化的情形,有兩個函數專門對應相應的轉化。 1、時間轉字符串函數strftime 函數原型:size_t strftime(char *s,size_t m

C#實戰小技巧(九):List<string>string[]的相互轉換

List是string型別列表,string[]是string型別陣列,二者可以互相轉換。 1.string[]轉List string[] strArray = {"a", "ab", "abc"}; List<string> strList = new List<s

30-python3 中 bytes string 之間的互相轉換

轉自:http://www.jb51.net/article/105064.htm   password = b'123456' 等價於: pw = '123456' password = pw.encode(encoding='utf-8')      前言

DateString型別相互轉換

    格式化時間使用simpledateformat.format(date),有時候專案中需要把String格式的時間轉換成Date,那麼就需要用到simpledateformat.parse(str)。 String轉Date (注意:String t

java裡面objectstring相互轉換

1. string 轉 object Type type = new TypeToken<Object>() {}.getType(); Object obj = GsonUtils.fromJson(strValue, type);   2. object轉strin

String型別 與Integer 型別之間相互轉化

   String 轉成 Integer                 》》當我們要把String轉化為Integer時,一定要對String進行非空判斷,否則很可能報空指標異常。

小資料池 (常量池 -> 字串快取) is==的區別 重新看編碼 以及編碼之間相互轉化

⼀. 小資料池 在說小資料池之前. 我們先看一個概念念. 什麼是程式碼塊: 根據提示我們從官⽅方⽂文件找到了這樣的說法: A Python program is constructed from code blocks. A block is a piece of Python program tex

documentString之間的互相轉換

字串轉換為 Document public static org.w3c.dom.Document getStringToDocument(String svg){         StringReader sr = new StringReader(svg);     

利用Google Gson實現JSON字串物件之間相互轉換

最近一個專案需要用到JSON,需要在JSON字串和物件之間相互轉換,在網上找了些資料,發現google的Gson還是比較不錯的。 廢話不說,下面是簡單的例子: 先上原始碼:下載(包含jar包) Person實體類 package com.hsun.json; /** * Pe