可扩展标记语言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. Javascript隐式转换

    乱想 javascript为什么需要隐式转换?如果没有会出现什么情况? 找了一圈没有看到关于这个的讨论,只好自己研究了,可能不一定正确,自行辨知. 郁闷就是郁闷在好好的,为什么要搞个隐式转换,一般来讲 ...

  2. Oracle Redo 以及 Archived日志简述

    Oracle通过Redo Archived实现数据的归档 什么是Redo日志 Redo日志记录了数据的变更,用于在数据库出现故障后,进行数据恢复. 功能主要由三个组件实现:Redo Log Buffe ...

  3. Java中 VO、 PO、DO、DTO、 BO、 QO、DAO、POJO的概念

    PO(persistant object) 持久对象 在 o/r 映射的时候出现的概念,如果没有 o/r 映射,没有这个概念存在了.通常对应数据模型 ( 数据库 ), 本身还有部分业务逻辑的处理.可以 ...

  4. C#学习系列-out与ref的区别

    参考:http://www.microsoftvirtualacademy.com/Content/ViewContent.aspx?et=9851&m=9839&ct=31056 如 ...

  5. Android Studio导入System Library步骤

    转载请注明出处:http://www.cnblogs.com/cnwutianhao/p/6242170.html 请尊重知识产权!!!  同步更新到CSDN:http://blog.csdn.net ...

  6. 学习ASP.NET MVC(四)——我的第一个ASP.NET MVC 实体对象

    今天我将根据数据库中的表结构添加一些类.这些类将成为这个ASP.NET MVC应用程序中“模型”的一部分.       我们使用Entity Framework(实体框架)来定义和使用这些模型类,并且 ...

  7. 每天一个linux命令(13):less 命令

    less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大.less 的用法比起 more 更加的有弹性.在 more 的时候,我们并没有办法向前面翻 ...

  8. KnockoutJS 3.X API 第三章 计算监控属性(1) 使用计算监控属性

    计算监控属性(Computed Observables) 如果你有一个监控属性firstName,和另一个lastName,你要显示的全名?可以使用计算监控属性来实现-它依赖于一个或多个其他监控属性, ...

  9. CSS等高布局的6种方式

    × 目录 [1]边框模拟 [2]负margin [3]table[4]absolute[5]flex[6]js 前面的话 等高布局是指子元素在父元素中高度相等的布局方式.等高布局的实现包括伪等高和真等 ...

  10. 有关PHP、HTML单引号、双引号转义以及转成HTML实体的那些事!

    一.单引号和双引号转义在PHP的数据存储过程中用得比较多,即往数据库里面存储数据时候需要注意转义单.双引号: 先说几个PHP函数: 1.addslashes — 使用反斜线引用(转义)字符串: 返回字 ...