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
随机推荐
- android-support-v7-appcompat的配置使用
直接将android-support-v7-appcompat.jar包拷贝到项目的libs/下面是不能使用的,具体做法官方文档给出了详细说明: (开发环境是ADT) Using Eclipse Cr ...
- 如何看懂XDEBUG+WEBGRIND?(转)
看到一个很有用的东东,收藏.. http://blog.csdn.net/yukon12345/article/details/11408617 ~~~~~~~~~~ 使用: ...
- windows批处理命令教程
批处理文件是无格式的文本文件,它包含一条或多条命令.它的文件扩展名为 .bat 或 .cmd.在命令提示下键入批处理文件的名称,或者双击该批处理文件,系统就会调用Cmd.exe按照该文件中各个命令 ...
- 用友U8.70安装说明
用友U8.70安装说明 U8.70安装说明一.安装前注意事项:1. 在安装U870之前,我们推荐您确保当前计算机操作系统是“干净”的,即计算机在安装过操作系统和更新过必要的系统补丁后没有安 ...
- C 编程调试集
gcc rw.c rw.c:75:6: warning: conflicting types for ‘process_conn_server’ void process_conn_server(in ...
- pyqt搜索指定信息 github处找到,谢谢这位朋友的帮助了
def tabunqi(self,text): #第一遍添加之后,不提示,当第二次添加相同的数据时,就提示下 text1=str(text) items = self.downwid ...
- Spark Yarn-cluster与Yarn-client
摘要 在Spark中,有Yarn-Client和Yarn-Cluster两种模式可以运行在Yarn上,通常Yarn-cluster适用于生产环境,而Yarn-Cluster更适用于交互,调试模式,以下 ...
- Three Families
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&p ...
- TI C66x DSP 系统events及其应用 - 5.1(QM accumulator的配置)
以下解说在详细应用中,event与中断ISR的设置.以对QM的queue监控产生中断(不是EXCEP)为例,主要包含配置QM accumulator(用于监控QM queue)与配置ISR(ISR与e ...
- C++中的对象数组
类是对象的抽象,我们可以使用一个类来定义很多的对象,然后每个对象都有自己的属性. 当我们使用类来定义很多相同结构的对象的时候,我们可以采取对象数组的方法. 例如,一个班有50个学生,我们定义了一个学生 ...