首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > XML SOAP >

Android SAX解析xml资料

2012-08-09 
Android SAX解析xml文件andorid读取xml文件内容方法有三种 sax dom pull,其中 pull是android自带的 1.先认

Android SAX解析xml文件
andorid读取xml文件内容方法有三种 sax dom pull,其中 pull是android自带的
1.先认识一下xml文件中的些术语



xml中的标签和内容都可以叫做节点,其中的persons  person  name age 这些都叫做元素(element).而像李明 25 这些值叫做文本节点.那么有个问题 中<persons>到<person>之间的是什么,什么都没有? 答案是他也是节点,是文本节点,你会说他里面什么都没有啊,错了,它有回车和空格.这个在sax解析xml中你debug一下就会发现.回车和空格(或者是tab)是会被读取出来的.id是属性.
2.sax
sax是采用事件驱动,就是说他不需要完全读完xml文件,他是读到一个节点就解析一个节点是否符合xml语法,如果符合就调用相对应的方法其实就是回调方法,并且没有记忆功能.下面提到的这些方法都是在ContentHander()接口中的方法.
    startDocumnet() :当开始解析xml文件的声明的时候就会触发这个事件, 可以做一些初始化的工作
    startElement()   当开始解析元素的开始标签的时候,就会触发这个事件
    characters()     当读到文本元素的时候要触发这个事件.
    endElement()     当读到结束标签的时候 就会触发这个事件

    sax就是这样按照顺序来解析的.
3.sax读取xml文件举例
3-1创建一个项目 ReadXml
3-2将xml文件拷贝到根目录下.
 
可以看出这个xml文件中有一个可以抽象出来的对象 就是person 属性有id name age
那么我们就建立一个bean
3-3:创建bean


3-4:遵循mvc的架构,我们建立一个service用来读取xml
package com.leequer.readxml;   /**   * 测试类   */  import java.io.InputStream;   import java.util.Iterator;   import java.util.List;     import com.leequer.service.SaxReadxml;   import com.leequer.service.demo.Person;     import android.test.AndroidTestCase;   import android.util.Log;     public class SaxReadxmlTest extends AndroidTestCase {       private String PERSONSTRING = "ObjectPerson";       public void testReadXml() throws Exception       {//类装载器           InputStream inputStream = SaxReadxmlTest.class.getClassLoader().getResourceAsStream("NewFile.xml");                      List <Person> personsList = SaxReadxml.readXml(inputStream);                      for (Iterator iterator = personsList.iterator(); iterator.hasNext();) {               Person person = (Person) iterator.next();               Log.i(PERSONSTRING, person.toString());           }                  }   }  


本文是从他处转载而来,原文链接
http://leequer.iteye.com/blog/653148

热点排行