获取XML文件的基本思路是,通过getResources().getXml()获的XML原始文件,得到XmlResourceParser对象,通过该对象来判断是文档的开头还是结尾,是某个标签的开始还是结尾,并通过一些获取属性的方法来遍历XML文件,从而访问XML文件的内容,下面是一个访问XML文件内容的例子,并将内容更显示在一个TextView上
ReadXMLTest.java
/* * @author hualang */ package org.hualang.readxml; import java.io.IOException; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; import android.app.Activity; import android.content.res.Resources; import android.content.res.XmlResourceParser; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; import org.hualang.readxml.R; public class ReadXMLTest extends Activity { private TextView myTextView; private Button myButton; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); myTextView = (TextView)findViewById(R.id.text); myButton = (Button)findViewById(R.id.button); //设置按钮监听器 myButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { //设置定时器 int counter = 0; //实例化StringBuilder StringBuilder sb = new StringBuilder(""); //得到Resources资源 Resources r = getResources(); //通过Resources,获得XmlResourceParser实例 XmlResourceParser xrp = r.getXml(R.xml.test); try { //如果没有到文件尾继续执行 while (xrp.getEventType() != XmlResourceParser.END_DOCUMENT) { //如果是开始标签 if (xrp.getEventType() == XmlResourceParser.START_TAG) { //获取标签名称 String name = xrp.getName(); //判断标签名称是否等于friend if(name.equals("friend")){ counter++; //获得标签属性追加到StringBuilder中 sb.append("第"+counter+"个朋友的信息:"+"\n"); sb.append(xrp.getAttributeValue(0)+"\n"); sb.append(xrp.getAttributeValue(1)+"\n"); sb.append(xrp.getAttributeValue(2)+"\n"); sb.append(xrp.getAttributeValue(3)+"\n\n"); } } else if (xrp.getEventType() == XmlPullParser.END_TAG) { } else if (xrp.getEventType() == XmlPullParser.TEXT) { } //下一个标签 xrp.next(); } myTextView.setText(sb.toString()); } catch (XmlPullParserException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }); } }
main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <Button android:id="@+id/button" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="读取XML文件内容" /> <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="" /> </LinearLayout>
res/xml目录下的test.xml文件
<?xml version="1.0" encoding="utf-8"?> <resources> <friend name="hualang" age="22" gender="male" email="hualang@yahoo.com"/> <friend name="nimo" age="21" gender="female" email="1234567@qq.com"/> </resources>
发表评论
-
android多线程下载详解
2012-05-10 10:38 667本文将介绍在android平台下如何实现多线程下载,大家 ... -
[Android]倒影效果的ImagView by sodino
2012-04-18 17:36 862效果图如下: pac ... -
使用PorterDuffXfermode实现遮罩层
2012-04-18 17:09 1141最近在开发一个小游戏中,用到一个显示当前进度的进度条,如下图所 ... -
对Canvas和Matrix的理解的简介与内容
2012-04-18 16:09 995不了解Matrix的同学看这里: 弄明白ma ... -
ImageView.setScaleType(ImageView.ScaleType)详解
2012-04-18 14:33 11971、这里我们重点懂得ImageView的属性android:s ... -
android:shape的使用
2012-04-17 17:47 519Android中常常使用shape来定义控件的一些显示属 ... -
ListView滑动分页
2012-04-12 16:36 0SCROLL_STATE_FLING是指手指快速拖动后,手指离 ... -
android xml解析 XmlPullParser的使用
2012-02-07 14:26 888android xml 的解析. 1.普通型 &l ... -
Android SAX API: XmlResourceParser及其扩展应用
2012-02-07 12:02 7public Vector<Map<Objec ... -
android网络传输的传送对象
2012-01-12 17:03 764此方法将对象写入对象流,然后转换成string,故适用于htt ... -
教你如何开关Android的APN网络
2011-09-15 11:12 685由于Android对于APN的网络API没有公开,不过我们 ... -
android 使用CMWAP接入点访问互联网
2011-09-15 10:46 897Android是个公认的好系统 ... -
android 创建兼容CMWAP连接的应用程序
2011-09-15 10:16 1049在Android开发中,经常会用到连接网络的操作,比如下 ... -
ListView分页加载数据
2011-09-08 14:11 950对于ListView分页加载数据,是正常情况下是非常有必要。一 ... -
ListView 实现像Android Market那样 分页加载 滚动加载
2011-09-07 14:57 1048ListView 实现像Android Market那样 分页 ... -
android 一个TabHost的例子
2011-09-07 11:30 1257package com.eric; import and ... -
android播放gif动画控件(例子)
2011-09-07 10:34 17361.测试程序 package com.test; ... -
ListView动态加载数据
2011-09-06 18:05 11681. 引言: 为了提高ListV ... -
ListView 异步加载图片源码
2011-09-06 17:51 11841.AsyncListImage.java packa ... -
Android 动态加载布局
2011-09-06 10:49 1302由于前段时间项目需 ...
相关推荐
NULL 博文链接:https://hualang.iteye.com/blog/1304054
NULL 博文链接:https://hualang.iteye.com/blog/1125355
项目管理故事2-实施策略杂谈-开元项目实施.ppt
swing开发杂谈--初版本程序源码 http://blog.csdn.net/ssrc0604hx/article/details/8737673
程序设计经验杂谈-给予帮助没,同时此文档是一位大师谢的,很经典。。
软件工程 (Software Engineering,简称为SE)是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及到程序设计语言,数据库,软件开发工具,系统平台,标准,...请看 软件工程历史杂谈-杨东屏
「安全管理」Linux_HIDS杂谈 - WEB应用防火墙 安全管理 安全资讯 安全开发 零信任 身份管理
java杂谈-一个计算机专业学生几年的编程经验汇总谈.pdf
java杂谈-一个计算机专业学生几年的编程经验汇总谈实用.pdf
作业指导书编制规范,作业指导书编制的各部分内容要点 - 仓库管理杂谈 - 库管易
NULL 博文链接:https://marlboro027.iteye.com/blog/960954
并行计算是当今热门的一个技术,本文档简单介绍了多核多线程的入门知识,可以作为初学者入门的好材料。
嵌入式开发必须要知道的知识点,主要是要点方面的总结,很给力!
。。。
。。。
为了解学术界东西方思维习惯的演变,本文建立了以随机概率论为基础的数学模型,考虑东西价值观差异,以揭示政府管制和道德引导在学术界树立正确价值观和文化自信中的影响以及必要性。数学模型都不是完全真实的,需要...