一、DOM
使用DOM扫描器程序:DOM扫描器是一种非常通用的程序,它不需知道用户定制的XML标记的确切含义。DOMAPI具有某些能把任何数据存储到树形结构中的接口。扫描器具有一组实现了这些接口的类,可以实例化这些类的对象。
这些接口和类允许插入和卸下不同的扫描器,不会影响应用程序,也可以调用DOMAPI的主要数据类型。它提供几种方法,可以引导到子节点。其他许多接口如Document、ELement、Entity和Attr都扩展了Node。
局限性:DOM适合处理少量及中等数据量的数据,但不适合处理非常大的数据。因为DOM处理文档时,只要一开始,必须到结束才能停止返回,对于非常大的数据,效率则比较低,当我们所需要的只不过是文件中的某些少量元素时,它却要浪费大量的时间处理整个文档。
二、SAX
SAX 扫描器:SAX与DOM工作方式有所不同,当它发现了所需要的元素时,会立即把XML元素返回给调用程序。也就是说,当SAX扫描器开始读取XML数据时,无论何时遇到给定元素的起始标记符,它将立即通知通用程序,而不需要每次都处理整个文档。遇到结束标记符也是如此。SAX扫描器与调用程序的通信方式是通过回调来实现的。又由于SAX不必在内存中建立语法树,从而节省了内存。
SAX扫描能够非常有效而方便地利用计算机资源,灵活地处理比较大的数据,但也