zoukankan      html  css  js  c++  java
  • java学习之路——利用SAX解析XML实例

     SAX是Simple API for XML的缩写,它并不是由W3C官方所提出的标准,虽然如此,使用SAX的还是不少,几乎所有的XML解析器都会支持它。
    与DOM比较而言,SAX是一种轻量型的方法。我们知道,在处理DOM的时候,我们需要读入整个的XML文档,然后在内存中创建DOM树,生成DOM树上的每个Node对象。当文档比较小的时候,这不会造成什么问题,但是一旦文档大起来,处理DOM就会变得相当费时费力。特别是其对于内存的需求,也将是成倍的增长,以至于在某些应用中使用DOM是一件很不划算的事(比如在applet中)。这时候,一个较好的替代解决方法就是SAX。
    SAX在概念上与DOM完全不同。它不同于DOM的文档驱动,它是事件驱动的,它并不需要读入整个文档,而文档的读入过程也就是SAX的解析过程。所谓事件驱动,是指一种基于回调(callback)机制的程序运行方法。
    输入XML文件到XMLReader-->XMLReader(parse())解析-->ContentHandler(相当事件监听器,定义了好多方法,常用的startDocument(),endDocument(),startElement(),endElement(),characters())
    在XMLReader parse()过程中生成相应事件,以触发ContentHandler中相应的方法。

    以下是我写的代码:

    运行的结果见下图:


  • 相关阅读:
    JavaEE学习之Spring Security3.x——模拟数据库实现用户,权限,资源的管理
    Couchbase入门——环境搭建以及HelloWorld
    VS2010如何使用Visual Studio Online在线服务管理团队资源(在线TFS)
    JSP报错:The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path
    JavaEE学习之JAXB
    JavaEE学习之JPA中配置文件persistence.xml
    女朋友手速太慢,导致我无精打采。
    手机投屏之使命召唤
    智能灯改造计划
    女朋友老是埋怨我技术不行,于是我做了个辅助工具。
  • 原文地址:https://www.cnblogs.com/lcqBlogs/p/2392379.html
Copyright © 2011-2022 走看看