小伙伴们知道xml吧,你们知道xml都有哪些解析技术吗?小编这里整理了一些相关内容,下面就一起了解下吧。
通常来说,一般的xml解析技术有DOM、SAX、STAX此三种,我们可以来看看它们的优点及区别
DOM
思想:加载整个xml于内存中,形成文档对象,其中所有对xml的操作就是对内存中的文档对象进行操作。除外,DOM是官方通用的xml解析标准。
原理:会一次性将xml文档加载至内存中,并在内存中构建Document树。相对而言对内存要求较高。
缺点:通常不适合读取较大容量xml文件,因为其处理较大文件时性能会下降较多,十分容易导致内存溢出。因为此问题是由DOM树结构所造成,所以通常而言它的检索与更新效率上会有较大的提升,这种结构占用的内存较多,而且DOM必须在解析文件之前把整个文档装入内存,十分耗费资源,不适合在移动端上使用。
SAX
原理:SAX不同于DOM,SAX是一种事件驱动型的XML解析方式。它会按顺序读取XML文件,不会一次全部装载整个文件。当遇到如文件开头,文档结束,或标签开头与标签结束场景时,它就会触发一个事件,用户就能通过在其回调事件中写入处理代码来处理XML文件,较适合对XML的顺序访问。这种解析方式对内存要求较低
事件驱动
优点:解析速度快,占用内存少
StAX
STAX是一种拉模式 xml解析方式,SAX准确的说是一种推模式 xml解析方式
推(push)模式:由服务器主导,向客户端主动发送数据
拉(pull)模式:由客户端主导,向服务器主动申请数据
以上就是关于xml解析技术的全部内容,如若需要了解更多java常见问题,就请一直关注本网站吧。