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大获全胜。

 

 

有一部分是转载的,可惜找不到原创地址,应该要贴上来的,向原创致敬。

你可能感兴趣的:(xml,工作,sun)