XML如今已經成爲一種通用的數據交換格式,它的平臺無關性,語言無關性,系統無關性,給數據集成與交互帶來了極大的方便。對於XML自己的語法知識與技術細節,須要閱讀相關的技術文獻,這裏麪包括的內容有DOM(Document Object Model),DTD(Document Type Definition),SAX(Simple API for XML),XSD(Xml Schema Definition),XSLT(Extensible Stylesheet Language Transformations。linux
package com.alisoft.facepay.framework.bean;程序員
/**ide
*性能
* @author hongliang.dinghl編碼
* 定義XML文檔創建與解析的接口開放源代碼
*/orm
public interface XmlDocument {xml
/**接口
* 創建XML文檔事件
* @param fileName 文件全路徑名稱
*/
public void createXml(String fileName);
/**
* 解析XML文檔
* @param fileName 文件全路徑名稱
*/
public void parserXml(String fileName);
}
XML在不一樣的語言裏解析方式都是同樣的,只不過實現的語法不一樣而已。基本的解析方式有兩種,一種叫SAX,另外一種叫DOM。SAX是基於事件流的解析,DOM是基於XML文檔樹結構的解析。假設咱們XML的內容和結構以下:
<?xml version="1.0" encoding="UTF-8"?>
<employees>
<employee>
<name>ddviplinux</name>
<sex>m</sex>
<age>30</age>
</employee>
</employees>
1.DOM生成和解析XML文檔
爲XML文檔的已解析版本定義了一組接口。解析器讀入整個文檔,而後構建一個駐留內存的樹結構,而後代碼就可使用 DOM 接口來操做這個樹結構。優勢:整個文檔樹在內存中,便於操做;支持刪除、修改、從新排列等多種功能;缺點:將整個文檔調入內存(包括無用的節點),浪費時間和空間;使用場合:一旦解析了文檔還需屢次訪問這些數據;硬件資源充足(內存、CPU)。
2.SAX生成和解析XML文檔
爲解決DOM的問題,出現了SAX。SAX ,事件驅動。當解析器發現元素開始、元素結束、文本、文檔的開始或結束等時,發送事件,程序員編寫響應這些事件的代碼,保存數據。優勢:不用事先調入整個文檔,佔用資源少;SAX解析器代碼比DOM解析器代碼小,適於Applet,下載。缺點:不是持久的;事件事後,若沒保存數據,那麼數據就丟了;無狀態性;從事件中只能獲得文本,但不知該文本屬於哪一個元素;使用場合:Applet;只需XML文檔的少許內容,不多回頭訪問;機器內存少。
3.DOM4J生成和解析XML文檔
DOM4J 是一個很是很是優秀的Java XML API,具備性能優異、功能強大和極端易用使用的特色,同時它也是一個開放源代碼的軟件。現在你能夠看到愈來愈多的 Java 軟件都在使用 DOM4J 來讀寫 XML,特別值得一提的是連 Sun 的 JAXM 也在用 DOM4J。
4.JDOM生成和解析XML
爲減小DOM、SAX的編碼量,出現了JDOM;優勢:20-80原則,極大減小了代碼量。使用場合:要實現的功能簡單,如解析、建立等,但在底層,JDOM仍是使用SAX(最經常使用)、DOM、Xanan文檔。