5. 格式化輸出和指定編碼
默認(rèn)的輸出方式為緊湊方式,默認(rèn)編碼為UTF-8,但對(duì)于我們的應(yīng)用而言,一般都要用到中文,并且希望顯示時(shí)按自動(dòng)縮進(jìn)的方式的顯示,這就需用到OutputFormat類。
/**
* 格式化XML文檔,并解決中文問(wèn)題
* @param filename
* @return
*/
public int formatXMLFile(String filename){
int returnValue = 0;
try{
SAXReader saxReader = new SAXReader();
Document document = saxReader.read(new File(filename));
XMLWriter writer = null;
/** 格式化輸出,類型IE瀏覽一樣 */
OutputFormat format = OutputFormat.createPrettyPrint();
/** 指定XML編碼 */
format.setEncoding("GBK");
writer= new XMLWriter(new FileWriter(new File(filename)),format);
writer.write(document);
writer.close();
/** 執(zhí)行成功,需返回1 */
returnValue = 1;
}catch(Exception ex){
ex.printStackTrace();
}
return returnValue;
}
說(shuō)明:
OutputFormat format = OutputFormat.createPrettyPrint();
這句指定了格式化的方式為縮進(jìn)式,則非緊湊式。
format.setEncoding("GBK");
指定編碼為GBK。
XMLWriter writer = new XMLWriter(new FileWriter(new File(filename)),format);
這與前面兩個(gè)方法相比,多加了一個(gè)OutputFormat對(duì)象,用于指定顯示和編碼方式。
6. 完整的類代碼
前面提出的方法都是零散的,下面給出完整類代碼。
Dom4jDemo.java
package com.holen.dom4j;
import java.io.File;
import java.io.FileWriter;
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;
/**
* @author Holen Chen
*/
public class Dom4jDemo {
public Dom4jDemo() {
}
public int createXMLFile(String filename){…}
public int ModiXMLFile(String filename,String newfilename){…}
public int formatXMLFile(String filename){…}
public static void main(String[] args) {
Dom4jDemo temp = new Dom4jDemo();
System.out.println(temp.createXMLFile("d://holen.xml")); System.out.println(temp.ModiXMLFile("d://holen.xml","d://holen2.xml"));
System.out.println(temp.formatXMLFile("d://holen2.xml"));
}
}
說(shuō)明:
main()方法中依次調(diào)用三個(gè)方法,第一個(gè)方法用于生成holen.xml,第二個(gè)方法用于修改holen.xml,并且修改后的內(nèi)容另存為holen2.xml,第三個(gè)方法將holen2.xml格式化縮進(jìn)式輸出,并指定編碼方式為GBK。
一個(gè)應(yīng)用Dom4j的例子
[ 2005-4-21 ]
Created with Colorer-take5 Library. Type 'net.sf.colorer.FileType@777255'
0: /*
1: * Created on 2005-4-19
2: *
3: * Copyright (c) 2005 Julysea
4: * Window - Preferences - Java - Code Style - Code Templates
5: */
6:
7: /*應(yīng)用此log4j的log4j.properties配置文件
8: *
9: *#######################################################################
10: *# Categories and levels
11: *#######################################################################
12: *
13: *log4j.rootCategory=DEBUG, FileApp, ConApp
14: *log4j.category.de.jayefem=DEBUG, FileApp, ConApp
15: *
16: *#######################################################################
17: *# Appenders
18: *#######################################################################
19: *
20: *# ConApp is set to be a ConsoleAppender.
21: *log4j.appender.ConApp=org.apache.log4j.ConsoleAppender
22: *log4j.appender.ConApp.Target=System.out
23: *log4j.appender.ConApp.layout=org.apache.log4j.PatternLayout
24: *log4j.appender.ConApp.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
25: *
相關(guān)推薦:計(jì)算機(jī)等級(jí)考試二級(jí)Java經(jīng)典算法大全匯總
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |