1. 下載與安裝
dom4j是sourceforge.net上的一個(gè)開(kāi)源項(xiàng)目,主要用于對(duì)XML的解析。從2001年7月發(fā)布第一版以來(lái),已陸續(xù)推出多個(gè)版本,目前最高版本為1.5。
dom4j專門(mén)針對(duì)Java開(kāi)發(fā),使用起來(lái)非常簡(jiǎn)單、直觀,在Java界,dom4j正迅速普及。
dom4j1.5的完整版大約13M,是一個(gè)名為dom4j-1.5.zip的壓縮包,解壓后有一個(gè)dom4j-1.5.jar文件,這就是應(yīng)用時(shí)需要引入的類(lèi)包,另外還有一個(gè)jaxen-1.1-beta-4.jar文件,一般也需要引入,否則執(zhí)行時(shí)可能拋java.lang.NoClassDefFoundError: org/jaxen/JaxenException異常,其他的包可以選擇用之。
2. 示例XML文檔(holen.xml)
為了述說(shuō)方便,先看一個(gè)XML文檔,之后的操作均以此文檔為基礎(chǔ)。
holen.xml
O'Reilly
這是一個(gè)很簡(jiǎn)單的XML文檔,場(chǎng)景是一個(gè)網(wǎng)上書(shū)店,有很多書(shū),每本書(shū)有兩個(gè)屬性,一個(gè)是書(shū)名[title],一個(gè)為是否展示[show],最后還有一項(xiàng)是這些書(shū)的擁有者[owner]信息。
3. 建立一個(gè)XML文檔
/**
* 建立一個(gè)XML文檔,文檔名由輸入屬性決定
* @param filename 需建立的文件名
* @return 返回操作結(jié)果, 0表失敗, 1表成功
*/
public int createXMLFile(String filename){
/** 返回操作結(jié)果, 0表失敗, 1表成功 */
int returnValue = 0;
/** 建立document對(duì)象 */
Document document = DocumentHelper.createDocument();
/** 建立XML文檔的根books */
Element booksElement = document.addElement("books");
/** 加入一行注釋 */
booksElement.addComment("This is a test for dom4j, holen, 2004.9.11");
/** 加入第一個(gè)book節(jié)點(diǎn) */
Element bookElement = booksElement.addElement("book");
/** 加入show屬性內(nèi)容 */
bookElement.addAttribute("show","yes");
/** 加入title節(jié)點(diǎn) */
Element titleElement = bookElement.addElement("title");
/** 為title設(shè)置內(nèi)容 */
titleElement.setText("Dom4j Tutorials");
/** 類(lèi)似的完成后兩個(gè)book */
bookElement = booksElement.addElement("book");
bookElement.addAttribute("show","yes");
titleElement = bookElement.addElement("title");
titleElement.setText("Lucene Studing");
bookElement = booksElement.addElement("book");
bookElement.addAttribute("show","no");
titleElement = bookElement.addElement("title");
titleElement.setText("Lucene in Action");
/** 加入owner節(jié)點(diǎn) */
Element ownerElement = booksElement.addElement("owner");
ownerElement.setText("O'Reilly");
try{
/** 將document中的內(nèi)容寫(xiě)入文件中 */
XMLWriter writer = new XMLWriter(new FileWriter(new File(filename)));
writer.write(document);
writer.close();
/** 執(zhí)行成功,需返回1 */
returnValue = 1;
}catch(Exception ex){
ex.printStackTrace();
}
return returnValue;
}
說(shuō)明:
Document document = DocumentHelper.createDocument();
通過(guò)這句定義一個(gè)XML文檔對(duì)象。
Element booksElement = document.addElement("books");
通過(guò)這句定義一個(gè)XML元素,這里添加的是根節(jié)點(diǎn)。
Element有幾個(gè)重要的方法:
l addComment:添加注釋
l addAttribute:添加屬性
l addElement:添加子元素
最后通過(guò)XMLWriter生成物理文件,默認(rèn)生成的XML文件排版格式比較亂,可以通過(guò)OutputFormat類(lèi)的createCompactFormat()方法或createPrettyPrint()方法格式化輸出,默認(rèn)采用createCompactFormat()方法,顯示比較緊湊,這點(diǎn)將在后面詳細(xì)談到。
生成后的holen.xml文件內(nèi)容如下:
相關(guān)推薦:計(jì)算機(jī)等級(jí)考試二級(jí)Java經(jīng)典算法大全匯總
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |