Android杂谈---读取XML资源

转载 2012年03月30日 18:41:32

获取XML文件的基本思路是,通过getResources().getXml()获的XML原始文件,得到XmlResourceParser对象,通过该对象来判断是文档的开头还是结尾,是某个标签的开始还是结尾,并通过一些获取属性的方法来遍历XML文件,从而访问XML文件的内容,下面是一个访问XML文件内容的例子,并将内容更显示在一个TextView上

 

ReadXMLTest.java

Java代码 复制代码 收藏代码
  1. /*  
  2.  * @author hualang  
  3.  */  
  4. package org.hualang.readxml;   
  5.   
  6. import java.io.IOException;   
  7. import org.xmlpull.v1.XmlPullParser;   
  8. import org.xmlpull.v1.XmlPullParserException;   
  9.   
  10. import android.app.Activity;   
  11. import android.content.res.Resources;   
  12. import android.content.res.XmlResourceParser;   
  13. import android.os.Bundle;   
  14. import android.view.View;   
  15. import android.view.View.OnClickListener;   
  16. import android.widget.Button;   
  17. import android.widget.TextView;   
  18. import org.hualang.readxml.R;   
  19.   
  20. public class ReadXMLTest extends Activity {   
  21.     private TextView myTextView;   
  22.     private Button myButton;   
  23.     @Override  
  24.     public void onCreate(Bundle savedInstanceState) {   
  25.         super.onCreate(savedInstanceState);   
  26.        setContentView(R.layout.main);   
  27.           
  28.        myTextView = (TextView)findViewById(R.id.text);   
  29.        myButton = (Button)findViewById(R.id.button);   
  30.        //设置按钮监听器   
  31.        myButton.setOnClickListener(new OnClickListener() {   
  32.         @Override  
  33.         public void onClick(View v) {   
  34.             //设置定时器   
  35.                int counter = 0;   
  36.                //实例化StringBuilder   
  37.                StringBuilder sb = new StringBuilder("");   
  38.                //得到Resources资源   
  39.                Resources r = getResources();   
  40.                //通过Resources,获得XmlResourceParser实例   
  41.                XmlResourceParser xrp = r.getXml(R.xml.test);   
  42.                try {   
  43.                    //如果没有到文件尾继续执行   
  44.                 while (xrp.getEventType() != XmlResourceParser.END_DOCUMENT) {    
  45.                     //如果是开始标签   
  46.                          if (xrp.getEventType() == XmlResourceParser.START_TAG) {   
  47.                              //获取标签名称   
  48.                               String name = xrp.getName();   
  49.                               //判断标签名称是否等于friend   
  50.                               if(name.equals("friend")){   
  51.                                   counter++;   
  52.                                   //获得标签属性追加到StringBuilder中   
  53.                                   sb.append("第"+counter+"个朋友的信息:"+"\n");   
  54.                                   sb.append(xrp.getAttributeValue(0)+"\n");   
  55.                                   sb.append(xrp.getAttributeValue(1)+"\n");   
  56.                                   sb.append(xrp.getAttributeValue(2)+"\n");   
  57.                                   sb.append(xrp.getAttributeValue(3)+"\n\n");   
  58.                               }   
  59.                          } else if (xrp.getEventType() == XmlPullParser.END_TAG) {    
  60.                          } else if (xrp.getEventType() == XmlPullParser.TEXT) {    
  61.                          }    
  62.                          //下一个标签   
  63.                          xrp.next();    
  64.                     }   
  65.                 myTextView.setText(sb.toString());   
  66.             } catch (XmlPullParserException e) {   
  67.                 e.printStackTrace();   
  68.             } catch (IOException e) {   
  69.                 e.printStackTrace();   
  70.             }   
  71.         }   
  72.     });   
  73.     }   
  74. }  

 

main.xml

 

Java代码 复制代码 收藏代码
  1. <?xml version="1.0" encoding="utf-8"?>   
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:orientation="vertical"  
  4.     android:layout_width="fill_parent"  
  5.     android:layout_height="fill_parent"  
  6.     >   
  7. <Button   
  8.     android:id="@+id/button"  
  9.     android:layout_width="fill_parent"  
  10.     android:layout_height="wrap_content"  
  11.     android:text="读取XML文件内容"  
  12. />   
  13. <TextView     
  14.     android:id="@+id/text"  
  15.     android:layout_width="wrap_content"  
  16.     android:layout_height="wrap_content"    
  17.     android:text=""  
  18.     />   
  19. </LinearLayout>  

 

res/xml目录下的test.xml文件

Java代码 复制代码 收藏代码
  1. <?xml version="1.0" encoding="utf-8"?>   
  2. <resources>   
  3.     <friend name="hualang" age="22" gender="male" email="hualang@yahoo.com"/>   
  4.     <friend name="nimo" age="21" gender="female" email="1234567@qq.com"/>   
  5. </resources>  

 

Android读取资源文件——读取原始Xml内容和使用Menu文件

一、使用原始XML①在res下创建一个文件夹xml,里面创建一个test.xml的资源文件 ...
  • zhengyikuangge
  • zhengyikuangge
  • 2016年05月04日 19:43
  • 1465

转载:android 各种xml资源的引用方式

转载来源 http://blog.csdn.net/hunanwy/article/details/8517269 前言   本章内容为Android开发者指南的Framework T...
  • shanshan_blog
  • shanshan_blog
  • 2016年12月12日 15:27
  • 767

Android读取XML资源

获取XML文件的基本思路是,通过getResources().getXml()获的XML原始文件,得到XmlResourceParser对象,通过该对象来判断是文档的开头还是结尾,是某个标签的开始还是...
  • u010963246
  • u010963246
  • 2015年07月27日 16:40
  • 334

Android 读取xml资源

package com.test.runing2; import java.io.IOException; import org.xmlpull.v1.XmlPullParserException...
  • u010916821
  • u010916821
  • 2014年05月15日 07:02
  • 537

【Android基础知识】网络获取Xml文件并解析

从服务器获取xml内容并解析 girls.xml tian 12 tianting di 12 庞各庄 xml解析类 Xmlparse.java pu...
  • u010583599
  • u010583599
  • 2016年07月20日 14:13
  • 825

Android xml资源的引用方式

android中的xml资源引用方式不太好把握,尤其是工程比较大时。看到此文档,尤感欣喜! 原文 http://developer.android.com/guide/topics/res...
  • A3630623
  • A3630623
  • 2015年05月23日 20:08
  • 787

初学Android,使用自定义的XML资源(十八)

使用自定义的XML资源,这当然也必须是Android的一个功能,Java开发者可以使用DOM,SAX等多种方式,Android内建了Pull来解析XML那么我个人觉得在Android中还是使用它的内建...
  • lee576
  • lee576
  • 2012年08月06日 15:16
  • 4638

Android XML 文件中引用资源的方法

在 XML 文件中引用资源的语法如下: 1) @[package:]type/name使用我们自己包下的资源可以省略 package。 在 xml 文件中,如 main.xml 以及Android...
  • Rainary
  • Rainary
  • 2017年05月29日 23:56
  • 744

Android中获取res(xml,color)资源

一、如何获取 res 中的资源数据包package:android.content.res主要类:Resources其主要接口按照功能,划分为以下三部分:getXXXX()例如:int getColo...
  • belmeng
  • belmeng
  • 2011年07月17日 14:38
  • 6032

Android XML字符串资源文件详细讲解

前言 此篇讲解Android项目资源文件夹(res)下strings.xml资源文件的种类和使用。在实际开发过程中,字符串资源是使用的非常频繁的一种资源类型,所以今天打算单独以一篇博客的形式记录下来-...
  • muyi_amen
  • muyi_amen
  • 2015年08月27日 14:55
  • 2071
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android杂谈---读取XML资源
举报原因:
原因补充:

(最多只允许输入30个字)