Android使用SAX解析XML(1)
可扩展标记语言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)的更多相关文章
- Android之SAX解析XML
一.SAX解析方法介绍 SAX(Simple API for XML)是一个解析速度快并且占用内存少的XML解析器,非常适合用于Android等移动设备. SAX解析器是一种基于事件的解析器,事件驱动 ...
- Android使用SAX解析XML(4)
util.java文件如下: package com.hzhi.my_sax; import java.io.IOException; import java.io.InputStream; impo ...
- Android使用SAX解析xml
一.理论准备 SAX采用事件驱动机制来解析XML文档,每当SAX解析器发现文档开始.元素开始.文本.元素结束.文档结束等事件时,就会向外发送一次事件,而开发者则可以通过编写事件监听器处理这些事 ...
- Android使用SAX解析XML(5)
parse_handler.java文件: package com.hzhi.my_sax; import org.xml.sax.Attributes; import org.xml.sax.SAX ...
- Android使用SAX解析XML(3)
主界面MainActivity.java: package com.hzhi.my_sax; import java.util.ArrayList; import android.os.Bundle; ...
- Android使用SAX解析XML(2)
school类包含了一个major列表,可以增加该列表的元素,以及返回该列表,还实现了Parcelable.Creator接口. package com.hzhi.my_sax; import jav ...
- Android使用SAX解析XML(6)
应用截图: (1)开始运行时 (2)选择学院 (3)选择专业 (4)选择班级 (5)选择班级的详细信息 本文参考了<Android平台开发之旅>.
- Android 使用pull,sax解析xml
pull解析xml文件 1.获得XmlpullParser类的引用 这里有两种方法 //解析器工厂 XmlPullParserFactory factory=XmlPullParserFactory. ...
- Android SAX解析XML
本篇讲解一下SAX解析XML这种方式,首先来看一下它的基本介绍: SAX是一种以事件驱动的XML API,由它定义的事件流可以指定从解析器传到专门的处理程序的代码的XML结构,简单的讲,它是种解析速度 ...
随机推荐
- EF架构~充血模型设置不被持久化的属性
回到目录 在Poco实体中,一般只有属性没有方法,这在软件设计中称为贫血模型,而在DDD领域驱动设计中,比较提倡充血模型,即你的Poco实体中,即有属性,也有操作属性的方法,注意这里说的是操作属性的方 ...
- JS中的宽高(基础知识很重要)
IE中:document.body.clientWidth ==> BODY对象宽度document.body.clientHeight ==> BODY对象高度document.docu ...
- display的理解
display可把框内显示的内容改变(自我理解) none 此元素不会被显示. block 此元素将显示为块级元素,此元素前后会带有换行符. inline 默认.此元素会被显示为内联元素,元素前后没有 ...
- c#设计模式-工厂方法
一. 工厂方法(Factory Method)模式 工厂方法(FactoryMethod)模式是类的创建模式,其用意是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中. 工厂方法模式是简单工 ...
- java实现栈与队列
一.栈 栈是一种特殊的线性表.其特殊性在于限定插入和删除数据元素的操作只能在线性表的一端进行.(先进后出) 访问权限:栈限制了访问权限,只可以访问尾节点,也就是最后添加的元素 即栈顶的元素 /** * ...
- react6 事件传递参数
<body><!-- React 真实 DOM 将会插入到这里 --><div id="example"></div> <!- ...
- 安卓学习进程(2)Android开发环境的搭建
本节将分为五个步骤来完成Android开发环境的部署. 第一步:安装JDK. 第二步:配置Windows上JDK的变量环境 . 第三步:下载安装Eclipse . 第四步:下载安装Androi ...
- hibernate(七) hibernate中查询方式详解
序言 之前对hibernate中的查询总是搞混淆,不明白里面具体有哪些东西.就是因为缺少总结.在看这篇文章之前,你应该知道的是数据库的一些查询操作,多表查询等,如果不明白,可以先去看一下 MySQL数 ...
- 抛弃强大的TFS ,借助于BugTracker.NET + Visual Source Safe + SourceLink搭建项目开发环境
微软公司的Team Foundation Server是个强大的项目管理工具,如果用.NET开发,它应该是首选的项目管理平台.TFS的成本比较高,而且和Visual Studio集成紧密.比如TSF有 ...
- Java多线程系列--“基础篇”08之 join()
概要 本章,会对Thread中join()方法进行介绍.涉及到的内容包括:1. join()介绍2. join()源码分析(基于JDK1.7.0_40)3. join()示例 转载请注明出处:http ...