1. public class MainActivity extends Activity {
  2. private Button btn = null;
  3. private List<Map<String,String>> list = null;
  4. private XmlResourceParser xrp = null;
  5.  
  6. @Override
  7. protected void onCreate(Bundle savedInstanceState) {
  8. super.onCreate(savedInstanceState);
  9. setContentView(R.layout.activity_main);
  10.  
  11. btn = (Button)findViewById(R.id.btn);
  12.  
  13. list = new ArrayList<Map<String,String>>();
  14.  
  15. xrp = this.getResources().getXml(R.xml.students);
  16.  
  17. btn.setOnClickListener(new OnClickListener(){
  18. @Override
  19. public void onClick(View arg0) {
  20. Map<String,String> map = null;
  21. String tag = "";
  22. try {
  23. while(xrp.getEventType() != XmlResourceParser.END_DOCUMENT){
  24. switch(xrp.getEventType()){
  25. case XmlResourceParser.START_TAG:
  26. tag = xrp.getName();
  27. if(tag.equalsIgnoreCase("student")){
  28. map = new HashMap<String,String>();
  29. }else if(map != null){
  30. if(tag.equalsIgnoreCase("id")){
  31. map.put("id", xrp.nextText());
  32. }else if(tag.equalsIgnoreCase("name")){
  33. map.put("name", xrp.nextText());
  34. }
  35. }
  36. break;
  37. case XmlResourceParser.END_TAG:
  38. if(xrp.getName().equalsIgnoreCase("student") && map!=null){
  39. list.add(map);
  40. map = null;
  41. }
  42. break;
  43. }
  44. xrp.next();
  45. }
  46. }catch (XmlPullParserException e) {
  47. e.printStackTrace();
  48. }catch(IOException e){
  49. e.printStackTrace();
  50. }
  51.  
  52. for(int i=0; i<list.size(); i++){
  53. Log.d("+id+", list.get(i).get("id"));
  54. }
  55. }
  56. });
  57. }
  58. }

xml/students.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <students>
  3. <student>
  4. <id>1</id>
  5. <name>张三</name>
  6. </student>
  7. <student>
  8. <id>2</id>
  9. <name>李四</name>
  10. </student>
  11. <student>
  12. <id>3</id>
  13. <name>王五</name>
  14. </student>
  15. </students>

使用PULL方式解析XML资源文件下面的xml文件的更多相关文章

  1. Android 读取assets文件下的txt文件

    android 读取assets文件下的txt文件,解决了读取txt文件的乱码问题: package com.example.com.scrollview; import java.io.Buffer ...

  2. php 获取文件下的所有文件。php 获取文件下的所有子文件。php 递归获取文件下的所有文件。封装好的方法

    //php 获取文件下的所有文件.php 获取文件下的所有子文件.php 递归获取文件下的所有文件.直接上封装好的php代码 <?php //文件路径 $dir = dirname(__FILE ...

  3. SAP BO WebI 如何连接webi server folder下面的EXCEL文件作为数据源

    昨天做Webi Report,需要连接一个在Webi Server Folder下面的EXCEL文件作为数据源,然后再去生成相应的报表,找了半天才找到可以连接Webi Server Folder的EX ...

  4. 使用pull方式解析xml文件示例:

    网上的示例太多,基本类似,个人在此做个简单的总结: 1.首先在工程的asserts目录下建一个book.xml文件: <?xml version="1.0" encoding ...

  5. 下载放在resource下面的excel文件

    1.将excel文件放项目resources目录下 2.打包的时候排除指定后缀文件,否则打包时会出现文件损坏的情况 <configuration> <encoding>UTF- ...

  6. android在当前app该文件下创建一个文件夹

    /*********************************************************************  * Author  : Samson  * Date   ...

  7. Pull方式解析XML文件

    package com.pingyijinren.test; import android.content.Intent; import android.os.Handler; import andr ...

  8. ssm中整合Mybatis可以扫描到放在mapper下面的xml文件的方法

    mybatis配置时出现org.apache.ibatis.binding.BindingException: Invalid bound statement (not found) 解决方法有两种: ...

  9. 解决android中Layout文件下的xml文件配好后,R类中不能自动生成相应代码

    不能更新的原因: 1.在xml文件中代码错误或者格式错误 2.eclipse 编译器是老版本 3.布局文件的文件名有大写字母 4.含有相同文件名.格式的xml文件 解决方法: 1.找到出错的xml文件 ...

随机推荐

  1. Ubuntu下Vim 如何进入全屏编辑模式

    如题:F11进入全屏编辑模式,再按F11则退出全屏编辑模式.

  2. PlayerPrefs类

    该类用于本地持久化保存与读取数据工作原理是:以键值对的形势将数据保存在文件中.该类可以保存与读取3种基本的数据类型,它们是浮点型.整型和字符串型,涉及的方法如下.SetFloat():保存浮点类型Se ...

  3. pyqt例子下拉列表

    #!/usr/bin/env python # -*- coding: utf-8 -*- from PyQt4.QtCore import Qt from PyQt4.QtGui import QC ...

  4. tab切换jquery代码

    http://immmmm.com/jquery-tab-switch-code-improved.html html <div id="sidebar-tab">   ...

  5. (转)iOS7界面设计规范(9) - UI基础 - 动画

    傍晚下了场大雨,现在坐在屋里也真是很风凉,听着Everlong突然觉得好像去年秋天的气息.每个季节都有各自的气息,每一年也是,如果你留意,便会感觉到.话说这几天,外面的猫猫狗狗们可以补些水来喝了,这也 ...

  6. Javascript:作用域 学习总结

    作用域(scope): 变量与函数的可访问范围,控制着变量与函数的可见性和生命周期   作用域分类: javascript中,变量的作用域分为:全局作用域,局部作用域 局部变量的优先级大于全局变量,或 ...

  7. C语言--返回局部变量的地址

    我们可能会经常写出这样的代码: int  add(int  a , int  b) { return  a + b; } 当然,这是合理的写法,使函数的返回值为 int ,所以,调用函数后会返回一个i ...

  8. Python源码学习之初始化(三)-PyDictObject的初始化

    先来看它的定义 typedef struct _dictobject PyDictObject; struct _dictobject { PyObject_HEAD Py_ssize_t ma_fi ...

  9. 自己实现一个SQL解析引擎

    自己实现一个SQL解析引擎 功能:将用户输入的SQL语句序列转换为一个可运行的操作序列,并返回查询的结果集. SQL的解析引擎包含查询编译与查询优化和查询的执行,主要包含3个步骤: 查询分析: 制定逻 ...

  10. Network 20Q--Q2 How does Google sell ad spaces?

    在使用Google搜索的时候会发现,搜索出来的页面除了在左边显示搜索结果以外,还会页面的右边推荐一些广告.那么Google是怎么从这些广告挣钱以及广告商可以通过Google广告获得什么利益呢? Goo ...