美文网首页我爱编程
Android中用SAX解析XML 结合例子说明一下

Android中用SAX解析XML 结合例子说明一下

作者: 阿川丶 | 来源:发表于2016-09-10 12:52 被阅读95次

    之前没怎么用过SAX解析,最近项目用到了,就仔细的看了一下,然后写个简书,记录下来,以后还可以复习复习

    1.说到SAX解析XML,肯定会想到DOM解析和PULL的解析,我也看了资料来区分他们的三个的,我个人认为他们三个区别在于  

    SAX:是根据xml的顺序依次进行解析的,读到某一个节点的时候,回去判断这个节点与xml的语          法中的对应的部分是否符合,是按照这个模式解析的

    DOM:是一次性的将xml的所有内容都读取到内存中,然后操作者在遍历解析到内存中xml树,然            后再根据需求提取自己想要的部分,我认为它的优点在于很直观,所有的东西都摆在眼前              需要什么就提取什么,但是一次性的将所有的内容都读取到内存中,站在安卓的角度来                讲,这样的方式是不推荐的(抛开它所在内存的大小)

    PULL:是和SAX解析很相似的一种解析,我也是分别找了2个例子做了一下对比,我认为PULL解析            是具有主动权的,主动的进行解析和结束,而SAX解析,不是主动的,只要解析开始,就必          须等到解析结束

    2.下面来看一下SAX解析中用到的几个很重要的方法

    /**

    * 当SAX解析器解析到XML文档开始时,会调用的方法

    */

    public void startDocument() throws SAXException {

    super.startDocument();

    }

    /**

    * 当SAX解析器解析到XML文档结束时,会调用的方法

    */

    @Override

    public void endDocument() throws SAXException {

    super.endDocument();

    }

    /**

    * 当SAX解析器解析到某个属性值时,会调用的方法

    * 其中参数ch记录了这个属性值的内容

    */

    @Override

    public void characters(char[] ch, int start, int length)

    throws SAXException {

    super.characters(ch, start, length);

    }

    /**

    * 当SAX解析器解析到某个元素开始时,会调用的方法

    * 其中localName记录的是元素属性名

    */

    public void startElement(String uri, String localName, String qName,

    Attributes attributes) throws SAXException {

    super.startElement(uri, localName, qName, attributes);

    }

    /**

    * 当SAX解析器解析到某个元素结束时,会调用的方法

    * 其中localName记录的是元素属性名

    */

    public void endElement(String uri, String localName, String qName)

    throws SAXException {

    // TODO Auto-generated method stub

    super.endElement(uri, localName, qName);

    }

    以上的这个几个方法,完全可以满足我们解析一个xml的基本需要

    3.大致的思路:根绝xml的内容定义个实体类,用来接收属性,然后再顶一个List,当解析到一个节点的时候如果符合就会将属性值添加到实体类                        中,这样,解析完成的话,所有的属性值就都放到实体类中了,最后在判断一下根节点,如果符合就将这个实体类添加到List中                       最后在你需要展示数据的页面,调用这个类,然后循环遍历去取list中的数据

    4.我例子写好了,注释也写了,但是我tm不会传上来,

    相关文章

      网友评论

        本文标题:Android中用SAX解析XML 结合例子说明一下

        本文链接:https://www.haomeiwen.com/subject/qwgcettx.html