zoukankan      html  css  js  c++  java
  • jaxp解析XML之SAX解析

    SAX解析原理
    是事件驱动的XML解析处理方法,是基于事件驱动的。
    ContentHandler文档处理器类中
    常用事件方法
    startDocument("");文档开始事件时调用
    endDocument("");文档结束事件时调用
    startElement("")回调在每次SAX解析器遇到元素的起始标记时被调用
    characters("")回调为字符数据时所调用
    endElement("")回调为元素的结束标记所调用
    DefaultHandLer类中来实现所有这些回调,并提供所有回调方法默认的空实现,是空实现不是抽象方法,空实现的好处需要用到哪个就子类复写哪个方法。

    SAXPareser
    不同于DOM的解析器会返回一个document文档对象,加载整个XML文档,该解析器在接收文档时同时接收一个ContentHandler文档处理器,通过文档处理器的事件方法来实时对XML文档进行处理。
    从这里可以看出推模式的作用特征,由解析器内部主导事件方法调用

    实例

    public class SAXTest{
      public static void main(String[]args){
        SAXParserFactory factory=SAXParserFactory.newInstance();//创建解析工厂
        SAXParser parser=factory.newSAXParser();//获取解析器对象
        MyHandler handler=new MyHandler();//获取文档处理器对象
        parser.parse(".xml",handler);//进行解析,在解析过程中会自动调用事件方法	
      }
    }
    class MyHandLer extends DefaultHandler{
    //此处为了说明只复写了一个方法,自动调用方法自动解析将对应参数对象传递进去,通过对对象进行操作xml
      public void startDocument(String uri,String localName,String aName,Attributes attributes)throws SAXException{
    
      }
    }

      

  • 相关阅读:
    【bzoj 2159】Crash 的文明世界
    【bzoj 4833】[Lydsy1704月赛]最小公倍佩尔数
    【解题报告】网络流24题
    【bzoj 4449】[Neerc2015]Distance on Triangulation
    【ARC 063F】Snuke's Coloring 2
    【LOJ 6041】「雅礼集训 2017 Day7」事情的相似度
    【AGC 005F】Many Easy Problems
    【AGC 002F】Leftmost Ball
    替罪羊树
    状压dp
  • 原文地址:https://www.cnblogs.com/ss561/p/4612147.html
Copyright © 2011-2022 走看看