1,dom和sax是java官方提供的解析方式,不須要導入額外jar包,dom甚至一種標準。 dom是一次性將整個xml文件dom結構加載進內存,所以比較佔空間。java
優勢: *造成了樹結構,直觀好理解,代碼更易編寫 *解析過程當中樹結構保留在內存中,方便修改api
缺點: !當Xml文件過大時,對內存消耗過大,容易影響解析性能並形成內存溢出。dom
2,sax是一種基於事件驅動的xml解析方式。在使用是須要編寫專門的handler,在文檔開頭會觸發startDocument()方法、解析到節點除法startElement(),節點閉合便籤觸發endElement()方法、文檔結束觸發endDocument()方法。性能
優勢: *採用事件驅動模式,對內存消耗比較小; *適用於只須要處理解析xml中的數據的時候,不關心文檔結構;編碼
缺點: !不易編碼,很難同時訪問統一文檔中的多處不一樣數據。xml
3,jdom和dom4j都是基於java平臺基礎解析技術即dom、sax,第三方開發出來的解析方式,須要相應jar包。 jdom僅使用具體類而不使用接口,api大量使用Collections類; dom4j實際上是jdom的一種智能分支,包含許多超出基本xml的解析功能,使用了接口和抽象類,性能優異,靈活性好,功能強大極端易使用,且源碼開放。接口
解析速度:sax最快>dom4j>jdom>dom(內存溢出)約事件
生成速度:sax最快>dom4j>jdom>dom(內存溢出)約,通解析速度 內存
能夠看出sax的速度優點是很大的,可是sax是基於事件的,不便於修改其文檔結構,使用第三方時優先使用dom4j。開發