可扩展标记语言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. IOS Socket 01-网络协议基础知识

    1. 网络参考模型 OSI参考模型                                          TCP/IP参考模型 2. 七层简述 1)物理层:主要定义物理设备标准,如网线的接 ...

  2. CSS水平垂直居中的几种方法2

    直接进入主题! 一.脱离文档流元素的居中 方法一:margin:auto法 CSS代码: div{ width: 400px; height: 400px; position: relative; b ...

  3. Node.js与Sails~日志机制log

    回到目录 看到Sails的日志就会想起来log4net,确实它们在很多地方是相似的,都是采用分级别记录的方式,而sails我觉得在使用上更加方便,它不需要我们做多于的事情,直接sails.log.级别 ...

  4. Yii 框架学习--01 框架入门

    Yii 是一个高性能的,适用于开发 WEB2.0 应用的 PHP 框架. Yii目前有两个主要的版本: 2.0 和 1.1.本文以YII 2.0.7为例. 环境需求 Yii2.0 框架有一些系统上的需 ...

  5. salesforce 零基础开发入门学习(十一)sObject及Schema深入

    sObject在salesforce中占有举足轻重的位置,除了在数据库中数据以外,我们还应该关心一下他的元信息.元信息封装在Schema命名空间内. 作为面向对象语言,我们可以畅想一下如果我们是设计人 ...

  6. Python中的__new__和__init__

    Python中的__new__和__init__ 写了这么多的class,现在才知道还有个__new__方法, 那么它和__init__有什么区别呢? class TestCls(): "& ...

  7. JS中实现数组和对象的深拷贝和浅拷贝

    数组的拷贝 > 数组的深拷贝,两层 var arr = [[1,2,3],[4,5,6],[7,8,9]]; var arr2 = []; 循环第一层数组 for(var i=0,len=arr ...

  8. python--基础学习(六)sqlite数据库基本操作

    python系列均基于python3.4环境 1.新建数据表 新建表,命名为student(id, name, score, sex, age),id为关键字,代码如下: import sqlite3 ...

  9. php基础教程-输出Hello World

    <!DOCTYPE html> <!--!文档类型,一个文档类型标记是一种标准通用标记语言的文档类型声明, 它的目的是要告诉标准通用标记语言解析器,它应该使用什么样的文档类型定义(D ...

  10. Python编码问题整理

    认识常见编码 GB2312是中国规定的汉字编码,也可以说是简体中文的字符集编码 GBK 是 GB2312的扩展 ,除了兼容GB2312外,它还能显示繁体中文,还有日文的假名 cp936:中文本地系统是 ...