SAX%2CDOM%2CJDOM%2CDOM4J的比较.docVIP

  • 1
  • 0
  • 约1.08万字
  • 约 12页
  • 2017-01-06 发布于江西
  • 举报
SAX,DOM,JDOM,DOM4J的比较第一:首先介绍一下SAX,DOM,JAXP,JDOM,DOM4J的基本知识: 1 1.1、sax、dom是两种对xml文档进行分析的方法 1 1.2、jaxp是api,他封装了sax\dom两种接口 1 1.3、xerces解释器(号称地球上最快的xml解释器) 2 1.4、什么时候可以用别的解释器 比如crimson呢 2 第二:再介绍一下,dom,sax,jdom,dom4j的技术特点: 2 2.1)DOM(JAXP Crimson解析器) 2 2.2)SAX 3 2.3)JDOM????/ 3 2.4)DOM4J 4 2.5)三者比较 4 第三、四种xml操作方式的基本使用方法 4 1)DOM 例子代码 5 dom运行结果 6 2)SAX ??例子代码 7 sax运行结果: 8 3)JDOM 例子代码 9 jdom运行结果为: 10 4)DOM4J 例子代码 10 Dom4j运行结果为: 11 第一:首先介绍一下SAX,DOM,JAXP,JDOM,DOM4J的基本知识: (注意:至于 JAXP |?? JAXB |?? JAXM |?? JAXR |?? JAX-RPC 分别指什么,查看/staticcontent/html/xml/faq/#jaxr_) 1、sax、dom是两种对xml文档进行分析的方法(没有具体的实现,只有接口) 所以不是解释器,如果光有他们,你是完成不了对xml文档的处理的。 sax的包是org.xml.sax dom的包是org.w3c.dom 包的名称很重要,它有助于你理解他们之间的关系。 2、jaxp是api,他封装了sax\dom两种接口。并在sax\dom的基础之上,作了一套比较简单的api以供开发人员使用。 jaxp的包是javax.xml.parsers 可以看看jaxp的源文件,它的文件中包含了对sax或者dom的引用(import) jaxp也不是具体的实现,他只是一套api。如果你仅仅有jaxp那是无法工作的 (其实jaxp只是完成对sax、dom的包装,生成了DocumentBuilderFactory\DocumentBuilder 和SAXParserFactory SAXParser。也就是设计模式中的工厂模式,他的好处就是具体的对象( 解释器)建立由子类完成) 3、xerces解释器(号称地球上最快的xml解释器) 在xerces中对jaxp中定义的SAXParser SAXParserFactory DocumentBuilder DocumentBuilderFactory进行了继承(extends)对应SAXParserImpl SAXParserFactoryImpl DocumentBuilderImpl DocumentBuilderFactoryImpl 这就是为什么你的classpath中只要有xerces.jar(其中包含了sax dom jaxp )和 xercesImpl.jar就可以的原因了. 4、什么时候可以用别的解释器 比如crimson呢 他也是和xerces一样 是解释器,很简单,用crimson.jar 替代xercesImpl.jar 5、jdom和dom4j W3C的DOM标准API难用的让人想撞墙,于是有一帮人开发Java专用的XML API目的是为了便于使用,这就是jdom的由来,开发到一半的时候,另一部分人又分了出来,他们有自己的想法,于是他们就去开发dom4j,形成了今天这样两个API,至于他们之间的性能,jdom全面惨败,dom4j大获全胜。我觉得jdom和dom4j就相当于sax/dom+jaxp,具体的解释器可以选择。第二:再介绍一下,dom,sax,jdom,dom4j的技术特点:1)DOM(JAXP Crimson解析器)? DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准。DOM是以层次结构组织的节点或信息片断的集合。这个层次结构允许开发人员在树中寻找特定信息。分析该结构通常需要加载整个文档和构造层次结构,然后才能做任何工作。由于它是基于信息层次的,因而DOM被认为是基于树或基于对象的。DOM以及广义的基于树的处理具有几个优点。首先,由于树在内存中是持久的,因此可以修改它以便应用程序能对数据和结构作出更改。它还可以在任何时候在树中上下导航,而不是像SAX那样是一次性的处理。DOM使用起来也要简单得多。 2)SAX?????SAX处理的优点非常类似于流媒体的优点。分析能够立即开始,而不是等待所有的数据被处理。而且,由于应用程序只是在读取数据时检查数据,因此不需要将数据存储在内存中。这对于大型文档来说是个巨大的优点。事实上,应用程序甚至不必解析

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档