可扩展标记语言XML是一种数据交换格式,允许用户自己定义,适合Web传输,能提供独立于程序的数据。XML在Android中也有广泛的应用,Android解析XML的方法有很多,本文介绍使用SAX(Simple API for XML)解析XML。

需要解析的infor.XML文件:

<?xml version="1.0" encoding="utf-8"?>
<infor>
<School Name="计算机学院" Code="CS">
<Major Name="计算机应用" Code="CA">
<Class Name="计算机应用10级" Code="CA10"/>
<Class Name="计算机应用11级" Code="CA11"/>
<Class Name="计算机应用12级" Code="CA12"/>
<Class Name="计算机应用13级" Code="CA13"/>
</Major>
<Major Name="计算机软件" Code="CW">
<Class Name="计算机软件10级" Code="CW10"/>
<Class Name="计算机软件11级" Code="CW11"/>
<Class Name="计算机软件12级" Code="CW12"/>
<Class Name="计算机软件13级" Code="CW13"/>
</Major>
<Major Name="计算机网络" Code="NW">
<Class Name="计算机网络10级" Code="NW10"/>
<Class Name="计算机网络11级" Code="NW11"/>
<Class Name="计算机网络12级" Code="NW12"/>
<Class Name="计算机网络13级" Code="NW13"/>
</Major>
</School>
<School Name="电子学院" Code="EE">
<Major Name="电子工程" Code="ER">
<Class Name="电子工程10级" Code="ER10"/>
<Class Name="电子工程11级" Code="ER11"/>
<Class Name="电子工程12级" Code="ER12"/>
<Class Name="电子工程13级" Code="ER13"/>
</Major>
<Major Name="通信工程" Code="CR">
<Class Name="通信工程10级" Code="CR10"/>
<Class Name="通信工程11级" Code="CR11"/>
<Class Name="通信工程12级" Code="CR12"/>
<Class Name="通信工程13级" Code="CR13"/>
</Major>
</School>
<School Name="管理学院" Code="BS">
<Major Name="企业管理" Code="EM">
<Class Name="企业管理10级" Code="EM10"/>
<Class Name="企业管理11级" Code="EM11"/>
<Class Name="企业管理12级" Code="EM12"/>
<Class Name="企业管理13级" Code="EM13"/>
</Major>
<Major Name="会计" Code="AC">
<Class Name="会计10级" Code="AC10"/>
<Class Name="会计11级" Code="AC11"/>
<Class Name="会计12级" Code="AC12"/>
<Class Name="会计13级" Code="AC13"/>
</Major>
</School>
</infor>

该文件最上层是几个学院,每个学院下面有若干个专业,每个专业下面是若干个班级。需要解析的XML文件一般放在res的raw文件夹下面。

建立4个类:infor.java对应xml文件中的infor节点,school.java对应学院,major.java对应专业,clas.java对应班级。这4个类的包含关系为infor.java>school.java>major.java>clas.java。

infor类包含了一个school列表,可以增加、返回该school列表。

package com.hzhi.my_sax;

import java.util.ArrayList;

public class infor {

	public static final String TAG_NAME = "infor";

	// 学院列表
public ArrayList<school> schools; // 构造函数
public infor(){
this.schools = new ArrayList<school>();
} // 增加一个学院
public void add_school(school s){
this.schools.add(s);
} // 返回学院列表
public ArrayList<school> get_schools(){
return this.schools;
} }

Android使用SAX解析XML(1)的更多相关文章

  1. Android之SAX解析XML

    一.SAX解析方法介绍 SAX(Simple API for XML)是一个解析速度快并且占用内存少的XML解析器,非常适合用于Android等移动设备. SAX解析器是一种基于事件的解析器,事件驱动 ...

  2. Android使用SAX解析XML(4)

    util.java文件如下: package com.hzhi.my_sax; import java.io.IOException; import java.io.InputStream; impo ...

  3. Android使用SAX解析xml

    一.理论准备     SAX采用事件驱动机制来解析XML文档,每当SAX解析器发现文档开始.元素开始.文本.元素结束.文档结束等事件时,就会向外发送一次事件,而开发者则可以通过编写事件监听器处理这些事 ...

  4. Android使用SAX解析XML(5)

    parse_handler.java文件: package com.hzhi.my_sax; import org.xml.sax.Attributes; import org.xml.sax.SAX ...

  5. Android使用SAX解析XML(3)

    主界面MainActivity.java: package com.hzhi.my_sax; import java.util.ArrayList; import android.os.Bundle; ...

  6. Android使用SAX解析XML(2)

    school类包含了一个major列表,可以增加该列表的元素,以及返回该列表,还实现了Parcelable.Creator接口. package com.hzhi.my_sax; import jav ...

  7. Android使用SAX解析XML(6)

    应用截图: (1)开始运行时 (2)选择学院 (3)选择专业 (4)选择班级 (5)选择班级的详细信息 本文参考了<Android平台开发之旅>.

  8. Android 使用pull,sax解析xml

    pull解析xml文件 1.获得XmlpullParser类的引用 这里有两种方法 //解析器工厂 XmlPullParserFactory factory=XmlPullParserFactory. ...

  9. Android SAX解析XML

    本篇讲解一下SAX解析XML这种方式,首先来看一下它的基本介绍: SAX是一种以事件驱动的XML API,由它定义的事件流可以指定从解析器传到专门的处理程序的代码的XML结构,简单的讲,它是种解析速度 ...

随机推荐

  1. git 修改管理

    查看修改: 撤销某一文件的修改(还没提交): 撤销所有文件的修改: git checkout .

  2. bianma 水平 技巧

    能够写出这样的代码, 其实体现了水平 switch (state) { case 0: break; case 3: return; // already connected case 4: stat ...

  3. 《Effective Java》—— 对于所有对象都通用的方法

    本节主要涉及Object中通用的一些方法,比如equals,hashCode,toString,clone,finalize等等 覆盖equals时请遵守通用约定 equals方法实现的等价关系: 自 ...

  4. Visual Studio 2012系统环境变量设置(命令行)

    方法1.运行脚本vsvars32.bat:D:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\Tools\vsvars32.bat ...

  5. jquery 插件开发

    一.$.extend()  这种方式用来定义一些辅助方法是比较方便的 $.extend({ sayHello:function(name){ console.log('Hello:'+name); } ...

  6. Win7系统.net framework 4.0没有注册导致部署在IIS的站点跑不起来怎么办

    win7装了VS再装IIS,结果IIS里面有.NET4.0,但是程序始终是跑不起来,怎么办呢? 分析觉得可能是因为4.0没有注册到IIS,在win7下如果先安装vs2010 (附带会安装Microso ...

  7. C#、.Net代码精简优化(空操作符(??)、as、string.IsNullOrEmpty() 、 string.IsNullOrWhiteSpace()、string.Equals()、System.IO.Path 的用法)

    一.空操作符(??)在程序中经常会遇到对字符串或是对象判断null的操作,如果为null则给空值或是一个指定的值.通常我们会这样来处理: .string name = value; if (name ...

  8. webpack配置详解

    webpack配置详解 先点个赞吧,再挨个点下面的连接,觉得不值这个赞的回来骂我啊. Webpack傻瓜式指南(一) Webpack傻瓜指南(二)开发和部署技巧 Webpack傻瓜式指南 原生的官网详 ...

  9. [java]输入一个算术表达式输出结果

    动手有益. 输入一个表达式,没有括号,数字小于0-9之间,输出计算结果,所有的中间结果化为整形.例如:  输入:3+8×2/9-2  输出:2 /** * input a calculate stri ...

  10. WPF中找不到Image或者Image不是Drawing系列

    WPF中默认没有引用WinForm里面的一些东西,都是用它自带的那一套,但又不能完全脱离,所以有的时候比较蛋疼