Java中的XML解析

做技术工作这么久,一直都忙忙碌碌的,走过了就走过了,完全没有给自己留下一点点的记忆。就像小学时候学的猴子掰苞谷一样,掰到一个新的就把旧的扔了。期望自己能够坚持下去把技术学习的历程记录下来,闲来翻翻既可以为鉴也是别有番风味。

入正题,昨天偶然的原因促使我系统的看了下java的xml解析。就XML解析来讲,现在有三种通用的解析方式:

  1. SAX(Simple API for XML).更快,消耗的内存更小。
  2. DOM(Document Object Model).提供整个文档DOM对象的随机访问,较慢,消耗较多内存。
  3. 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/

posted @ 2012-12-13 21:56  梯小田  阅读(299)  评论(1)    收藏  举报