DOM4J簡單介紹和用法。

那麼如果說現在有一個工具既可以發揮出SAX解析的優點,也可以返回出DOM解析的優點,那麼這樣的工具一定是非常受
歡迎的,最早的時候有過一個JDOM的開發工具,但是這個JDOM只是對DOM和SAX進行了簡單的操作封裝,並沒有對一些數
據的保存算法進行優化,所以後來被DOM4j工具所取代,在現在所有的開發框架之中都一定會存在有DOM4j的開發包。
但是如果要想使用DOM4J,那麼首先必須要清楚使用那些類可以完成XML文件的操作;但是這個包屬於第三方的開發程序,
所以需要將這個開發包配置到項目的CLASSPATH中。

輸出 在java代碼中的寫法:

//1定義輸出的數據內容

String ids[]=new String[]{"001","001"};

String names[]=new String[]{"春哥","羅哥"};

String ages[]=new String[]{"88","25"};

String tels[]=new String[]{"10086","10010"};
//2所有的XML文件必須都存在有一個文檔。

Document document =DocumentHelper.createDocument();

//3向document中追加並創建元素

Element contractElement = document.addElement("contract");

//4利用循環進行子元素的追加
for(int x=0;x<ids.length;x++)
{
//在contract節點下創建新的子節點
Element memberElement=contoactElement.addElement("member");
//在member元素中增加屬性內容
memberElement.addAttribute("id",ids[x]);
//在member元素下創建name元素
Element nameElement = memberElement.addElement("name");
nameElement .setText(names[x]);
//在member元素下創建age元素
Element ageElement= memberElement.addElement("age");
ageElement.setText(ages[x]);
//在member元素下創建tel元素
Element telElement= memberElement.addElement("tel");
telElement.setText(tels[x]);
}


//5要準備輸出,首先要設置輸出的格式化
OutputFormat format=OutputFormat.createCompactFormat();
format.setEncoding("UTF-8");
//6進行文件輸出 文件的路徑根據自己需要定義。如下是E盤,mytest文件夾的contract.xml文件
File file =new File("e:"+ File.separator + "mytest" + File.separator +"contract.xml");
XMLWriter out = new XMLWriter(new FileOutputStream(file),format);
out.write(document);
out.close();
//此時如果選擇緊湊型輸出,結果會很混亂,所以我們需要改用爲漂亮型輸出,
使用此類模式實現的輸出操作,要比直接使用DOM簡單的多。

讀取:

如果要想進行XML文件的讀取,不需要做什麼思考,肯定使用SAX讀取是最方便的,所以在DOM4j中特別安置了SAX解析器
專門讀取所有的XML文件;

//1設置要讀取的文件路徑
File file =new File("e:"+ File.separator + "mytest" + File.separator +"contract.xml");


//2定義SAX解析器讀取
SAXReader sax=new SAXReader();


//3將數據轉化爲Document接口對象
//讀取整個文檔數據
Document document=sax.read(file);


//4取出根元素
Element rootElement=document.getrootElement();


//測試取出的根元素

sysout(rootElement.getName());


//5取出所有的member子元素
Iterator<Element> iter=rootElement.elementIterator("member");
While(iter.hasNext())
{
Element member=iter.next();
Sysout("ID="+ member.attributeValue("id"));
Sysout("name="+ member.member.ElementTetx("name"));
}
現在通過讀取操作就可以非常清楚的發現,利用DOM4j工具實現的讀取太方便了。這也就是爲什麼所有的開源框架都用的
DOM4j來讀取XML配置文件的原因
DOM4j=DOM 可修改的特點+SAX 讀取大文件的特點

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章