Dom 4j 格式化xml補充

2021-08-30 03:47:43 字數 1134 閱讀 8835

dom 4j 格式化xml補充

作為乙個優秀的xml framework的dom4j,本身提供了格式化檔案的一些方法,讓我們看看如何可以更方便的處理。

本文涉及如何格式化xml輸出,設定輸出字符集,以及xmlwriter不同的writer方法的區別。

dom4j提供的格式化xml方法:

outputformat format = outputformat.createprettyprint();

xmlwriter writer = new xmlwriter( out, format );

writer.write( document );

writer.close();

這裡建立乙個 outputformat 類,用來作為生成xmlwriter的引數。然後建立xmlwriter,呼叫 write 方法輸出 格式化後的 xml 。

如果你想得到xml 返回的內容,而不是直接輸入到output流裡面,可以這樣處理:

public static string format(document document) catch (exception e)

return writer.tostring();

}在這裡我們建立乙個stringwriter類,把xmlwriter輸出到stringwriter,然後返回xml的文字內容。

在這裡也許你會很奇怪,為什麼不用xmlwriter的 write(string text) 方法, 而是採用write(document doc)方法呢,下面我們可以做乙個試驗。

使用write(document doc)的結果:

<?xml version="1.0" encoding="gb2312"?>

使用write(string text)的結果:

<?xml version="1.0" encoding="utf-8"?>

我們可以看到,使用第二種方法,輸出並沒有進行格式化,並且輸出結果進行了html的轉換。詳細你可以檢視dom4j的原始碼,在格式化string方法中,預設採用轉換方法。

最後在提一點,方法format.setencoding("gb2312")可以設定輸出內容的字符集,也包含了xml檔案頭宣告<?xml version="1.0" encoding="gb2312"?> 。

作者blog:

dom4j格式化XML檔案

現在有任務要求比對2個xml檔案是否相同,我把xml檔案轉換成string型別之後比較發現比較不通過,原來還有格式要求,帶換行或者空格的話2個xml格式比較就不一樣,所以需要進行格式化。從網上搜下下,然後改了改就可以了。view plaincopy to clipboardprint?格式化xml檔...

dom4j 使用dom4j生成xml

使用org.dom4j.element 建立xml 生成service.xml檔案 param tran 交易物件 param filepath 資料夾路徑 public static void exportservicexml listtranlist,string filepath servic...

xml檔案解析 DOM4J

讀取並解析xml文件 讀寫xml文件主要依賴於org.dom4j.io包,其中 提供domreader 和saxreader 兩類不同方式,而呼叫方式是一樣的。這就是依靠介面的好處。從檔案讀取 xml,輸入檔名,返回 xml文件 publicdocument read string filename...