XML解析方法
一、SAX 和DOM
java解析XML文檔,最常用有兩種方法:
???? SAX (Simple API for XML): 基于事件的XML簡單API,包為 org.xml.sax;
???? DOM (Document Object Module):基本樹和節點的文檔對象模型,包為org.w3c.com。
SAX和DOM只是接口,沒有具體的實現。
?
?
二、JAXP
Sun公司提供了Java API for XML Parsing(JAXP)接口來使用SAX和DOM,通過JAXP,我們可以使用任何與JAXP兼容的XML解析器,JAXP的包是:javax.xml.parsers,jaxp 封裝了SAX和DOM,并且在SAX和DOM的基礎上,提供了一套比較簡單的API供開發人員使用,但是JAXP也不是具體的實現,僅僅有JAXP也是無法工作的。
JAXP接口包含了三個包:?
(1)org.w3c.dom W3C推薦的用于XML標準規劃文檔對象模型的接口。?
(2)org.xml.sax 用于對XML進行語法分析的事件驅動的XML簡單API(SAX)?
(3)javax.xml.parsers解析器工廠工具,程序員獲得并配置特殊的特殊語法分析器。
?
三、xerces解釋器(號稱地球上最快的xml解釋器)
?
?在xerces中對jaxp中定義的SAXParser SAXParserFactory DocumentBuilder DocumentBuilderFactory進行了繼承(extends),對應SAXParserImpl SAXParserFactoryImpl DocumentBuilderImpl DocumentBuilderFactoryImpl ,這就是為什么你的classpath中只要有xerces.jar(其中包含了sax dom jaxp )和 xercesImpl.jar就可以的原因了. Xerces是默認的xml解析器。
?
SAXParserFactory saxParserfactory = SAXParserFactory.newInstance();
SAXParser saxParser = saxParserfactory.newSAXParser(); DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
?
默認得到的都是Xerces的SAXParser和DocumentBuilder.
?
?
四、jdom和dom4j
?
W3C的DOM標準API難用的讓人想撞墻,于是有一幫人開發Java專用的XML API目的是為了便于使用,這就是jdom的由來,開發到一半的時候,另一部分人又分了出來,他們有自己的想法,于是他們就去開發dom4j,形成了今天這樣兩個API,至于他們之間的性能,jdom全面慘敗,dom4j大獲全勝。
?
?
有一部分是轉載的,可惜找不到原創地址,應該要貼上來的,向原創致敬。
總結
- 上一篇: w3c dom操作Xml时从加入另一个X
- 下一篇: java全半角转换