需要做一个银行名字的列表。

因为有很多,所以想到了用xml来保存,然后uongDAX解析。

public class BankSelectActivity extends BaseActivity{
private List list;//存放搜索结果 @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// setContentView(R.layout.citylist);
doMyMission();
} /**
* 使用SAX解析器解析XML文件的方法
*/
private void doMyMission() {
try {
//获取AssetManager管理器对象
AssetManager as = getAssets();
//通过AssetManager的open方法获取到banks.xml文件的输入流
InputStream is = as.open("banks_num.xml");
//通过获取到的InputStream来得到InputSource实例
InputSource is2 = new InputSource(is);
//使用工厂方法初始化SAXParserFactory变量spf
SAXParserFactory spf = SAXParserFactory.newInstance();
//通过SAXParserFactory得到SAXParser的实例
SAXParser sp = spf.newSAXParser();
//通过SAXParser得到XMLReader的实例
XMLReader xr = sp.getXMLReader();
//初始化自定义的类MySaxHandler的变量msh,将beautyList传递给它,以便装载数据
BankNumHandler msh = new BankNumHandler(list);
//将对象msh传递给xr
xr.setContentHandler(msh);
//调用xr的parse方法解析输入流
xr.parse(is2);
} catch (Exception e) {
e.printStackTrace();
}
} class BankNumHandler extends DefaultHandler {
private List mList;
//声明一个字符串变量
private String content;
private String key; public BankNumHandler(List list) {
this.mList = list;
} /**
* 当SAX解析器解析到某个属性值时,会调用的方法
* 其中参数ch记录了这个属性值的内容
*/
@Override
public void characters(char[] ch, int start, int length)
throws SAXException {
super.characters(ch, start, length);
content = new String(ch, start, length);
} /**
* 当SAX解析器解析到某个元素结束时,会调用的方法
* 其中localName记录的是元素属性名
*/
@Override
public void endElement(String uri, String localName, String qName)
throws SAXException {
super.endElement(uri, localName, qName);
if ("key".equals(localName)) {
key = content;
} else if ("integer".equals(localName)) {
if (key.equals(mList.get(0))) {
mList.add(content);
netDialog.dismiss();
}
}
}
}
}

部分xml文件的内容:

<dict>
<key>上海银行</key>
<integer>xxxxxx</integer>
<key>上饶银行</key>
<integer>xxxxxx</integer>
<key>东莞银行</key>
<integer>xxxxxx</integer>
</dict>

当调用

doMyMission()方法结束后,list中就保存了xml文件里的所有值。

SAX解析xml文件的更多相关文章

  1. JAVA使用SAX解析XML文件

    在我的另一篇文章(http://www.cnblogs.com/anivia/p/5849712.html)中,通过一个例子介绍了使用DOM来解析XML文件,那么本篇文章通过相同的XML文件介绍如何使 ...

  2. 用SAX解析xml文件,java

    (此文为(https://www.imooc.com/video/4482)之随笔) 1.用SAX解析xml文件大致分为三步 写了一个XML文件作为例子 (1)main方法代码如下: import j ...

  3. sax解析xml文件的DefaultHandler处理类

    一千年的时光,我无数次掀起岁月的帷幔,只为和你,在某一个平静如水的日子相遇,然后相识,倾情一生,缱绻一世,好美的散文,好吧,我情愿把这个“你”当作android:),使用sax解析xml文件是我见到过 ...

  4. cocos2d-x 3.0 使用Sax解析xml文件(中国显示器问题解决)

    今天是个好日子.我以为事情可以变得,明天是个好日子.打开门儿春风... 恩,听着歌写文档生活就是这么享受. 今天曾经的邻居大神突然在qq上赞了我一下,这让我异常激动啊.. 这还要从前前前几天说起,那会 ...

  5. 安卓SAX解析XML文件

    XML文件经常使用的解析方式有DOM解析,SAX解析. 一.Sax SAX(simpleAPIforXML)是一种XML解析的替代方法. 相比于DOM.SAX是一种速度更快,更有效的方法. 它逐行扫描 ...

  6. Python—使用xml.sax解析xml文件

    什么是sax? SAX是一种基于事件驱动的API. 利用SAX解析XML文档牵涉到两个部分:解析器和事件处理器. 解析器负责读取XML文档,并向事件处理器发送事件,如元素开始跟元素结束事件; 而事件处 ...

  7. android sax解析xml 文件 动态加载标题

    要解决一个问题 : 问题描述为 把标题动态的加载到 listView子布局中 我们首先通过 java程序写一个把标题写到xml文件的程序.这个程序会在以后讲解. 现在截图 已经写好的xm文件格式如下 ...

  8. 使用SAX解析XML文件

    SAX这是Simple API for XML缩写,它不是由引起W3C拟议标准正式.尽管如此,使用SAX很少几个,点儿全部的XML解析器都会支持它. 与DOM比較而言,SAX是一种轻量型的方法. 我们 ...

  9. sax解析xml文件,封装到对象中

    创建User.java类 public class User { private String id; private String name; private String age; private ...

随机推荐

  1. 驱动学习---PAE--virtual address to physics address

    PAE是Physical Address Extension的缩写,即物理地址扩展.简单来说,就是把IA-32处理器的寻址能力从原来的4GB扩展到64GB.寻址4GB空间,要求物理地址的宽度为32位. ...

  2. C#创建文件夹

    string path = Server.MapPath("~/DefaultImg/newDir/63/");//获取文件路径 if (!Directory.Exists(pat ...

  3. 循序渐进Python3(十一) --4--  web之jQuery

    jQuery         jQuery是一个快速.简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架).jQuery设计的 ...

  4. html 报表导出excel防止数字变科学计数

    在html 标签加:  <html xmlns:x="urn:schemas-microsoft-com:office:excel">    在要导出的tr加:  &l ...

  5. Linux性能工具介绍

    l  Linux性能工具介绍 p  CPU高 p  磁盘I/O p  网络 p  内存 p  应用程序跟踪 l  操作系统与应用程序的关系比喻为“唇亡齿寒”一点不为过 l  应用程序的性能问题/功能问 ...

  6. 笔记007:对象——RegExp正则表达式对象

    1.RegExp 一个用于匹配的模式文本 用0个或多个修饰符描述的匹配模式细节 RegExp对象的创建形式 用内建构造器创建    var re = new RegExp("j.*t&quo ...

  7. JSP开发模式2(计算器)

    CalculatorBean———————————————————————————————————————————— public class CalculatorBean {    private ...

  8. CSS3 结构伪类选择器 详解

    1 CSS3 结构伪类选择器 1.E:root 匹配E元素所在的根元素 即:html 2. E:nth-child(n) (1)匹配E元素的父元素中第n个子元素,(2)且该位置的子元素类型必须是E类型 ...

  9. maven 编译项目时:报com.sun.image.codec.jpeg不存在

    项目中用到图片处理相关的一些工具类,在eclipse开发工具内,程序并没有什么问题,都可以正常使用,项目也没有报错,但通过maven 进行编译打包时,则会报错: 程序包com.sun.image.co ...

  10. 轻型的ORM类Dapper

    Dapper是一个轻型的ORM类.代码就一个SqlMapper.cs文件,主要是IDbConnection的扩展方法,编译后就40K的一个很小的dll.官方站点http://code.google.c ...