由上面的代碼我們可以看出dom4j對編碼并沒有進行什么很復(fù)雜的處理,完全通過java本身的功能來完成。所以我們在使用dom4j的來生成我們的XML文件時不應(yīng)該直接為在構(gòu)建XMLWriter時,不應(yīng)該直接為其賦一個Writer對象,而應(yīng)該通過一個OutputStream的子類對象來構(gòu)建。也就是說在我們上面的代碼中,不應(yīng)該用FileWriter對象來構(gòu)建xml文檔,而應(yīng)該使用FileOutputStream對象來構(gòu)建所以將代碼修改入下:
public void createXML(String fileName) {
document.nbspdoc = org.dom4j.document.elper.createdocument.);
Element root = doc.addElement("book");
root.addAttribute("name", "我的圖書");
Element childTmp;
childTmp = root.addElement("price");
childTmp.setText("21.22");
Element writer = root.addElement("author");
writer.setText("李四");
writer.addAttribute("ID", "001");
try {
//注意這里的修改
org.dom4j.io.XMLWriter xmlWriter = new org.dom4j.io.XMLWriter(
new FileOutputStream(fileName));
xmlWriter.write(doc);
xmlWriter.close();
}
catch (Exception e) {
System.out.println(e);
}
}
至此DOM4J的問題編碼問題算是告一段落,希望對此文章對其他朋友有用。
Dom4j的基本使用
下載dom4j后,在其文檔中就用詳細的使用說明,我又將其封裝了一下:
package org.tju.msnrl.butil;
import java.io.*;
import java.util.*;
import org.dom4j.*;
import org.dom4j.io.XMLWriter;
import org.dom4j.io.SAXReader;
public class BDom4j {
/**XML文件路徑*/
private String XMLPath = null;
/**XML文檔*/
private Document document = null;
public BDom4j() {
}
/**
* 初始化xml文件
* @param XMLPath 文件路徑
*/
public BDom4j(String XMLPath){
this.XMLPath = XMLPath;
}
/**
* 打開文檔
*/
public void openXML(){
try{
SAXReader reader = new SAXReader();
this.document = reader.read(this.XMLPath);
System.out.println("openXML() successful ...");
}catch(Exception e){
System.out.println("openXML() Exception:" + e.getMessage());
}
}
/**
* 創(chuàng)建文檔
* @param rootName 根節(jié)點名稱
*/
public void createXML(String rootName){
try{
this.document = DocumentHelper.createDocument();
Element root = document.addElement(rootName);
System.out.println("createXML() successful...");
}catch(Exception e){
System.out.println("createXML() Exception:" + e.getMessage());
}
}
/**
相關(guān)推薦:北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |