解析XML文件的几种方式和区别

01-05 生活常识 投稿:沐若清辰
解析XML文件的几种方式和区别
有两种定义形式,dtd文档类型定义和SchemaXML模式;XML Schema 和DTD都用于文档验证,但二者还有一定的区别,本质区别是:Scheme本身是xml的,可以被XML解析器解析,这也是从DTD上发展Schema的根本目的。另外,XML Schema 是内容开放模型,可扩展,功能性强,而DTD可扩展性差。XML Schema 支持丰富的数据类型,而 DTD不支持元素的数据类型,对属性的类型定义也很有限。XML Schema 支持命名空间机制,而DTD不支持。XML Schema 可针对不同情况对整个XML 文档或文档局部进行验证;而 DTD缺乏这种灵活性。XML Schema 完全遵循XML规范,符合XML语法,可以和DOM结合使用,功能强大;而DTD 语法本身有自身的语法和要求,难以学习。

解析XML文件的几种方式和区别

Dom解析 在内存中创建一个DOM树,该结构通常需要加载整个文档然后才能做工作。由于它是基于信息层次的,因而DOM被认为是基于树或基于对象的,树在内存中是持久的,因此可以修改它以便应用程序能对数据和结构作出更改能随机访问文件内容,也可以修改原文件内容.


SAX解析 SAX处理的优点非常类似于流媒体的优点。分析能够立即开始,而不是等待所有的数据被处理。SAX解析器采用了基于事件的模型,它在解析XML文档的时候可以触发一系列的事件,当发现给定的tag的时候,它可以激活一个回调方法,告诉该方法制定的标签已经找到。而且,由于应用程序只是在读取数据时检查数据,因此不需要将数据存储在内存中。这对于大型文档来说是个巨大的优点线性解析,不能随机访问,也无法修改原文件

 

 JDOM解析 JDOM的目的是成为Java特定文档模型,它简化与XML的交互并且比使用DOM实现更快.JDOM仅使用具体类而不使用接口。这在某些方面简化了API,但是也限制了灵活性。第二,API大量使用了Collections类,简化了那些已经熟悉这些类的Java开发者的使用。

 DOM4j解析 DOM4J使用接口和抽象基本类方法。DOM4J大量使用了API中的Collections类,但是在许多情况下,它还提供一些替代方法以允许更好的性能或更直接的编码方法。直接好处是,虽然DOM4J付出了更复杂的API的代价,但是它提供了比JDOM大得多的灵活性。

标签: # 文档 # 方法
声明:伯乐人生活网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系ttnweb@126.com