getResources().getXml()获取xml
获取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();
- }
- }
- });
- }
- }
- /*
- * @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>
- <?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>
- <?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>
运行结果
注意:如果没有加入import org.hualang.readxml.R;这句话,点击按钮后没有反应,原因不知道

加入import org.hualang.readxml.R;后,运行结果如下

http://blog.csdn.net/freestyleboy21/article/details/7008228
getResources().getXml()获取xml的更多相关文章
- iOS 通过URL网络获取XML数据的两种方式
转载于:http://blog.csdn.net/crayondeng/article/details/8738768 下面简单介绍如何通过url获取xml的两种方式. 第一种方式相对简单,使用NSD ...
- Android开发之获取xml文件的输入流对象
介绍两种Android开发中获取xml文件的输入流对象 第一种:通过assets目录获取 1.首先是在Project下app/src/main目录下创建一个assets文件夹,将需要获取的xml文件放 ...
- php通过curl发送XML数据,并获取XML数据
php编程中经常会用到用xml格式传送数据,如调用微信等第三方接口经常用到,这里演示下php以curl形式发送xml,并通过服务器接收 一.发送xml数据 -- postXml.php <?ph ...
- 递归获取XML元素
看到的一道题,用递归获取XML元素.... static void Main(string[] args) { string xmlContent = @"<FileSystem> ...
- 获取XML数据
http://www.w3school.com.cn/xml/xml_elements.asp <?xml version="1.0" encoding="gb23 ...
- js解析xml,获取XMl标签属性值
<script type="text/javascript"> var xml="<?xml version=\"1.0\" enc ...
- 使用GridView来获取xml文件数据
在任何一个系统中,数据的读取和编辑都是至关重要的.无论你是CS还是BS,都需要对数据进行操作.其实 我们可以发现,很多软件和系统最终都是对于数据库中数据的处理.之前在CS的学习过程中我们接触到了很多 ...
- wemall app商城源码Android 获取XML网络数据并绑定到ListView
wemall-mobile是基于WeMall的android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享Android 获取XML网络数据并绑定到Li ...
- 使用PHP生成和获取XML格式数据
1.php生成xml
随机推荐
- UART与USART的区别
UART与USART都是单片机上的串口通信,他们之间的区别如下: 首先从名字上看: UART:universal asynchronous receiver and transmitter通用异步收/ ...
- Windows 8.1下使用IE 64位
Internet Options -> Advanced -> Settings Security组 对Enable 64-bit processes for Enhanced Prote ...
- JS字符串拼接优化
// 请把以下用于连接字符串的JavaScript代码修改为更高效的方式 var htmlString = ‘ < div class=”container” > ’ + ‘ < u ...
- genymotion+Oracle VM VirtualBox + eclipse + appium 脚本运行慢解决步骤
genymotion+Oracle VM VirtualBox + eclipse + appium 脚本运行慢解决步骤 1.lenove 机器启动时按F1 进入bios 设置,设置cpu virtu ...
- android AsyncTask 详细例子
一个典型AsyncTask的. 01 public class DialogTestActivity extends Activity { 02 private Button button1; ...
- Canvas制作排序算法演示动画
tips: 形象化演示排序算法可以让初学者快速理解,比较好的例子:jun-lu的SortAnimate,旧金山大学的David Galles教授的算法演示课件.最近在看canvas,试着用js+can ...
- CentOS管理
1.使用yum安装和卸载软件 主要功能是更方便的添加/删除/更新RPM包. 它能自动解决包的倚赖性问题. 它能便于管理大量系统的更新问题 一.yum list|more 列 ...
- .NET程序猿 - 提升幸福感的组件一览
1.Newtonsoft.Json.net 操作JSON最简便的方式. .Net 3.5开始,Framework集成Json序列化器:JavaScriptSerializer,然而Json.net给 ...
- Android学习之Activity之间的数据传递
Activity与Activity之间很多情况下都需要进行数据的传递,下面就用几个简单的例子来看一下. (一).一个Activity启动另一个Activity并将数据传递到这个Activity当中 思 ...
- ArcEngine - 地图和布局同步
1,定义同步的类: using System; using System.Collections.Generic; using System.Linq; using System.Text; name ...