zoukankan      html  css  js  c++  java
  • SAX之:SAXParserFactory与SAXParser

          SAX是Simple API for XML的简称,在Android里面提供对XML文件的解析接口方法,如果给我们一个XML文件,要求把里面我们关心的数据解析出来,我们就可以使用SAX技术,在具体使用中,会对XML文件的每一个字符逐一读取并出发相应事件,也就是说,SAX技术是事件驱动的。比如startDocument,startElement,characters,endElement等等下面是一个案例。

    实例源码:

     1 public List<Person> getPersons(InputStream inStream) throws Throwable
    2
    3 {
    4 SAXParserFactory factory = SAXParserFactory.newInstance();
    5 SAXParser parser = factory.newSAXParser();
    6 //自定义扩展自DefaultHandler的子类,覆写一些解析XML时我们需要的方法
    7 PersonParser personParser = new PersonParser();
    8 parser.parse(inStream, personParser);
    9 //使用完传进来的输入流后就把它关闭
    10 inStream.close();
    11 return personParser.getPersons();
    12
    13 }

    SAXParserFactory 相关介绍:

    定义了一个API工厂,使得应用程序可以配置和获得一个基于SAX(Simple API for XML

    )的解析器,从而能够解析XML文档( 原文: Defines a factory API that enables applications to configure and obtain a SAX based parser to parse XML documents. )

    它的构造器是受保护的,因而只能用newInstance()方法获得实例( Protected constructor to force use of newInstance(). )

    SAXParser相关介绍:

    定义了一个继承自XMLReader类的API,其构造器也是受保护的,通过newSAXParser() 方法获得实例,可以把各种数据源作为解析用的XML(这个方法就是public void parse (InputSource is, DefaultHandler dh)),这些输入数据源包括输入流,文件,URL以及SAX输入资源。(Defines the API that wraps an XMLReader implementation class , An instance of this class can be obtained from the newSAXParser() method. Once an instance of this class is obtained, XML can be parsed from a variety of input sources. These input sources are InputStreams, Files, URLs, and SAX InputSources. )

    关于SAX更多使用信息,还会撰文。

  • 相关阅读:
    MicroPython实例之TurnipBit开发板自动浇水实验
    MicropPython的学习,如何从0到1?
    MicroPython最全资料免费获取
    MicroPython技术及应用前景
    如何将AD原理图直接转为Orcad原理图
    USB音频声卡的时钟同步方式----同步、异步、自适应
    字符串指针数组长度
    关于传统模拟电话按键时间
    小米笔记本13.3寸 八代i5独显 记录
    小米笔记本Air 13.3 熄屏 大概率无法唤醒问题(已解决)
  • 原文地址:https://www.cnblogs.com/avenwu/p/2327749.html
Copyright © 2011-2022 走看看