Spring 配置加载之获取Document
我们已经获得Xml配置的Resource,但是我们从前面的也知道Resource其实只是实现了一个功能:获得配置文件的InputStream.但是InputStream只是一个流,不能直接解析,那么我就要将Xml通过解析转换成我们能够直接解读的数据结构。
Java 解析XML文件的方式:
- DOM(doucument object model) Dom解析是将xml文件全部载入,组装成一颗DOM树(树状结构),然后通过节点以及节点之间的关系来解析xml文件。
【优点】
①应用程序可以其对数据和结构进行更改。
②访问是双向的,可以在任何时候在树中上下导航,获取和操作任意部分的数据。
【缺点】
①通常需要加载整个XML文档来构造层次结构,消耗大。 - SAX(Simple API for XML)官方的解释是类似于流媒体的方式。我们可以简单的总结为,sax方式可以做到一边扫面文档,一边解析文档,不用把文件加载到内存中,相比于DOM解析方式,SAX方式对于大型的文件是一种很好的解决办法,减少了对内存的消耗。还有就是SAX解析方式是一种基于事件的方式,在解析xml文件的时候就是触发了一系列的事件,当遇到用户给定的标签的时候,会停止解析,这样在时间和空间上都是优于DOM解析的(DOM解析需要把文档全部加载进内存才能开始解析)