可扩展标记语言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. [翻译]AKKA笔记 - LOGGING与测试ACTORS -2 (一)

    在前两章 ( 一 , 二 ) ,我们大致讲了Actor和message是怎么工作的,让我们看一下日志和测试我们的 TeacherActor . RECAP 这是上一节我们的Actor代码: class ...

  2. Java线程:线程的交互

      一.线程交互的基础知识   SCJP所要求的线程交互知识点需要从java.lang.Object的类的三个方法来学习:    void notify()           唤醒在此对象监视器上等 ...

  3. 【管理心得之三十】"这事与我无关"

    场景再现 ========================事因 ⇔ {一个农庄主在他的粮仓里放了一只老鼠夹.} 过程 ⇔ {老鼠发现了,跑去告诉母鸡} 母鸡:这和我有什么关系,我很同情你.      ...

  4. jquery.validate 基础

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. 多线程 ThreadPool线程池

    简单说明一下: 线程池可以看做容纳线程的容器:一个应用程序最多只能有一个线程池:ThreadPool静态类通过QueueUserWorkItem()方法将工作函数排入线程池: 每排入一个工作函数,就相 ...

  6. ASP.NET MVC中使用FluentValidation验证实体

    1.FluentValidation介绍 FluentValidation是与ASP.NET DataAnnotataion Attribute验证实体不同的数据验证组件,提供了将实体与验证分离开来的 ...

  7. WPF自定义控件与样式(9)-树控件TreeView与菜单Menu-ContextMenu

    一.前言 申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等,若有不明白的地方可以参考本系列前面的文章,文末附有部分文章链接. 本文主要内容: 菜单M ...

  8. 数据结构:C_顺序栈的实现

    数据结构顺序栈的实现(C语言版) 1.写在前面 栈是一种遵循元素先进(Push)后出(Pop)规则的线性表,它的实现可以用数组或者链表. ..... 2.代码分解 2.1对栈的结构定义: typede ...

  9. H5游戏开发之抓住小恐龙

    第一次写技术性博文,以前都只是写一些生活感想,记录一些生活发生的事情. 博主大三学生一枚,目前学习JS一年多,还处于学习阶段,有什么说的不好的希望大牛指点下,由于第一次写博文,排版什么的有待改进,希望 ...

  10. WEB编程中获取src目录下的文件(没有src目录)

    这种情况遇见的会比较多,像一个WEB工程,如果在src下面写了一个xml或者一些其它的文件,当工程发布到服务器时,web程序是在tomcat等服务器下运行这个程序的,这个时候,程序目录里面并没有src ...