码迷,mamicode.com
首页 > 其他好文 > 详细

由XML解析学习工厂模式

时间:2014-08-20 21:00:03      阅读:216      评论:0      收藏:0      [点我收藏+]

标签:style   color   使用   io   数据   ar   art   代码   

代码段1:       

startupData = new StartupData();

/* 设定自定义的MyHandler给XMLReader */

  StartupXMLHandler startupDataXMLHandler = new StartupXMLHandler();
  startupDataXMLHandler.setData(startupData);

            /* 产生SAXParser对象 */
            SAXParserFactory spf = SAXParserFactory.newInstance();
            SAXParser sp = spf.newSAXParser();
     /* 产生XMLReader对象 */
       XMLReader xmlReader = sp.getXMLReader();//SAXParserFactory.newInstance().newSAXParser().getXMLReader();

     xmlReader.setContentHandler(startupDataXMLHandler);

     xmlReader.parse(input);

发现:关键有三个类:

         (1)StartupData

          (2)  StartUPXMLHandler

          (3)  XMLReader

其中(1)是存放解析XML结果的类,没啥啰嗦的。

      (2)看下面这段代码:

       SAX ,事件驱动。当解析器发现元素开始、元素结束、文本、文档的开始或结束等时,发送事件,程序员编写响应这些事件的代码,保存数据。优点:不用事先调入整个 文档,占用资源少;SAX解析器代码比DOM解析器代码小,适于Applet,下载。缺点:不是持久的;事件过后,若没保存数据,那么数据就丢了;无状态 性;从事件中只能得到文本,但不知该文本属于哪个元素;使用场合:Applet;只需XML文档的少量内容,很少回头访问;机器内存少;

  public class StartUPXMLHandler extends DefaultHandler{

           @Override

    public void startDocument() throws SAXException{

      System.out.println("开始解析!");

    }

           @Override

    public void endDocument() throws SAXException{

      System.out.println("解析完成!");

    }

           @Override

    public void startElement(String uri, String localName, String qName,Attributes atts) throws SAXException {

      System.out.println("元素名:"+qName);

    }

           @Override

    public void endElement(String uri, String localName, String qName) throws SAXException{

      System.out.println("对"+qName+"的解析完成!");

    }

  }

 

由XML解析学习工厂模式,布布扣,bubuko.com

由XML解析学习工厂模式

标签:style   color   使用   io   数据   ar   art   代码   

原文地址:http://www.cnblogs.com/aprnl/p/3874089.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!