Java中的XML解析
做技术工作这么久,一直都忙忙碌碌的,走过了就走过了,完全没有给自己留下一点点的记忆。就像小学时候学的猴子掰苞谷一样,掰到一个新的就把旧的扔了。期望自己能够坚持下去把技术学习的历程记录下来,闲来翻翻既可以为鉴也是别有番风味。
入正题,昨天偶然的原因促使我系统的看了下java的xml解析。就XML解析来讲,现在有三种通用的解析方式:
- SAX(Simple API for XML).更快,消耗的内存更小。
- DOM(Document Object Model).提供整个文档DOM对象的随机访问,较慢,消耗较多内存。
- STAX(Stream API for XML).以stream的方式来做解析,效率处于SAX和DOM之间。
这三种解析方式在wikipedia上面有详细解释:http://en.wikipedia.org/wiki/Java_API_for_XML_Processing
Java提供了XML API来对这三种技术做了封装,叫做JAXP,我们在编写程序的时候,可以使用标准的JAXP,而不用关注具体的解析方式的实现。在Java中做xml解析的框架太多,什么JDOM,DOM4J之类的,如果使用JAXP就可以不用绑定到具体的某个解析器的实现上面了,也是编码的时候推荐的方式。
Update:
JDK6中集成了xerces的SAX Parser的实现,如果没有配置外部的SAX Parser,那么默认会使用它来进行解析;同时,如果如果需要替换它,有多种方式可以来实现,其中的一种就是使用java的endorse机制来做。关于java endorse机制,详见:http://docs.oracle.com/javase/6/docs/technotes/guides/standards/

浙公网安备 33010602011771号