XML解析技术
DOM技术:文档对象模型,需要将整个XML加入内存才能解析,占用内存比较多
SAX技术:一边加载,一边解析,一边释放内存,比较节省内存,基于推模式
STAX技术:一种至于流的技术,和SAX技术很像,是基于拉模式的
推模式与拉模式
推模式就好像服务器主动给你发送消息一样,当使用SAX技术时,xml解析器碰到一个标签就会触发一个事件,而且一旦开始解析就不会停下来,直到所有内容解析完毕,不能人为的控制解析过程。
拉模式类似客户端发起HTTP请求后服务器才发送内容,使用STAX技术时,会碰到一个标签解析一下然后停止解析,如果还需要解析的话必须人为的启动解析,就好像解析器开启懒人模式一样。
基于以上技术实现的解析工具有
JAXP 同时支持DOM SAX STAX三种技术
DOM4J 支持DOM解析方式
XML PULL android移动设备内置的xml解析技术, 支持STAX解析方式
技术选择
在javaee开发中通常使用DOM技术,编程简单。当xml文档过于大时,优先使用SAX/STAX技术。