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

因为有很多,所以想到了用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. log4net 记录日志到sqlserver

    参考:http://blog.csdn.net/niuyongjie/article/details/5777625 demo

  2. mysql - 缺失范围和连续范围

    初始化数据 # 创建表 DROP TABLE IF EXISTS g; CREATE TABLE g( a INT )ENGINE=INNODB; # 初始化数据 ; ; ; ; ; ; ; ; ; ...

  3. npm install 出现UNABLE_TO_GET_ISSUER_CERT_LOCALLY

    解决方式 As a workaround you can turn ssl checking off in your .npmrc 执行 npm config set strict-ssl false ...

  4. Web应用定时任务实现

    一.需求: 项目上有时需要执行一些定时任务,比如:超过2天未处理的问题,邮件自动通知客服.对接人:3天未处理的问题,邮件自动通知客服.对接人和项目经理,同时标为‘紧急’状态:5天未处理的问题,邮件自动 ...

  5. alphaBlend

    // Alpha = srcAlpha + dstAlpha - srcAlpha * dstAlpha / 0xFF;// R = (srcR * srcAlpha + dstR * dstAlph ...

  6. 第1周 支路变量、元件、KCL和KVL

    第1周的内容,介绍了: 电阻.独立源.受控元件等实体元器件, 电流.电压.功率等抽象名词, 端口.参考方向等分析时的概念工具, KCL.KVL两大分析定律, 解线性电路的普适方法----2B法. 引入 ...

  7. android xml特殊字符

    @ 对应 @ : 对应 :   对应 空格 对应 空格 ! 对应 ! " 对应 " # 对应 # $ 对应 $ % 对应 % & 对应 & ' 对应 ´ ( 对应 ...

  8. SAP 采购订单行项目中科目分配被隐藏,发现行项目设置中显示字段长度为0

    1.sm30 维护 视图 TCVIEW 修改对应字段的显示长度

  9. 如何用java获得字符串的ASCII值

    使用Integer.valueOf就可以直接将char类型的数据转为十进制数据表现形式. int value=Integer.valueOf('1');//49int value=Integer.va ...

  10. 深入理解display属性

    display 属性在网页布局中很常见,但是之前一直不了解他的各个属性的区别,只是简单的使用block.none属性,对于其他属性都不清楚,今天详细的学习和实践display属性的各个方面 定义 di ...