XML解析与转换技术全解析
1. SAX与DOM的使用场景
1.1 SAX的适用场景
SAX(Simple API for XML)处理通常比DOM(Document Object Model)更快,原因在于它不会跟踪或在内存中构建文档树,从而消耗更少的内存,并且不会提前查看文档来解析节点引用。由于访问是顺序进行的,SAX非常适合以下类型的应用:
- 仅对读取XML数据感兴趣的应用。
- 不需要操作数据的应用,例如读取数据进行渲染的应用以及读取XML中定义的配置数据的应用。
不过,如果主要目的是读取数据并将其作为Java对象进行后续处理,JAXB可能是更好的选择。
此外,需要通过添加、删除或修改数据中的特定元素来过滤XML数据的应用也适合使用SAX访问。可以串行读取XML并修改特定元素。
1.2 DOM的适用场景
SAX和DOM的区别在于顺序只读访问和随机读写访问。可以将SAX解析XML比作在时间轴上进行,而DOM解析则是在空间轴上进行。如果在处理过程中需要在兄弟元素或嵌套元素之间横向移动,或者回溯到之前处理过的元素,DOM可能是更好的选择。
然而,创建和操作DOM会占用大量内存。因此,如果XML文件很大且复杂,或者JVM的内存有限(如在J2ME设备中),DOM处理就不是一个好的选择。
1.3 两者都不适用的场景
如果要执行的任务和XML数据都很简单,通常不需要使用XML解析器, java.io.StreamTokenizer 就足够了。例如,如果任务是读取文件并将已知元素的值替换为另一个值,使用字符
超级会员免费看
订阅专栏 解锁全文
3723

被折叠的 条评论
为什么被折叠?



