Android使用SAX解析XML(1)
16lz
2022-05-19
可扩展标记语言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安全 笔记
- android串口通信——电子扫描枪
- Android开发者网址导航
- Android开发者网址导航
- Android(安卓)电子罗盘开发。
- android 开发之电子钢琴 源码
- 几本适合新手的Android电子书(提供下载)
- android新手学习帮助网址
- Android使用SAX解析XML(5)