`
keeponmoving
  • 浏览: 112496 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

android之XmlResourceParser类使用实例

 
阅读更多

 

    android开发过程会经常使用XML文件,下面提供小实例,看看XmlResourceParser类是怎么样解析XML文件的。

XML文件名称为test.xml。内容如下:

 

<?xml version="1.0" encoding="utf-8"?>
<resources>
	<customer name="luopeng"  age="21"  gender="1" emial="dylankeepmoving@163.com"/>
	<customer name="dylan"  age="22"  gender="2"  emial="710097663@qq.com"/>
	<customer name="android"  age="6"  gender="2"  emial="android@gmail.com"/>
</resources>

 布局文件main.xml内容如下:

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textview01"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />
    <Button 
        android:id="@+id/btn01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/btn01"
        />
    <EditText 
        android:id="@+id/edittext01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/eidttext01"
        />
</LinearLayout>

 如下则是具体解析XML文件的类TestXmlResourceParserActivity.java:

 

package com.dylan.xmlresourceparser;

import java.io.IOException;

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.EditText;

/*
 * 此类的作用是点击按钮后在EditView上显示资源文件(一个XML)中的内容
 * 此例中会使用到XMLResourceParser
 */
public class TestXmlResourceParserActivity extends Activity {
	/** Called when the activity is first created. */
	private EditText et;
	private Button myButton;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);

		// 变量在内部类中使用的前提是此变量必须是final修饰的
		myButton = (Button) this.findViewById(R.id.btn01);
		et = (EditText) this.findViewById(R.id.edittext01);
		myButton.setOnClickListener(new OnClickListener() {
			StringBuilder sb = new StringBuilder("");
			Resources res = getResources();
			XmlResourceParser xrp = res.getXml(R.xml.test);

			@Override
			public void onClick(View v) {
				int counter = 0;
				try {
					// 判断是否到了文件的结尾
					while (xrp.getEventType() != XmlResourceParser.END_DOCUMENT) {
						//文件的内容的起始标签开始,注意这里的起始标签是test.xml文件里面<resources>标签下面的第一个标签
						if (xrp.getEventType() == XmlResourceParser.START_TAG) {
							String tagname = xrp.getName();
							if (tagname.endsWith("customer")) {
								counter++;
								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什么作用呢?
						else if (xrp.getEventType() == XmlResourceParser.END_TAG) {
						} else if (xrp.getEventType() == XmlResourceParser.TEXT) {
						} 
						xrp.next();
					}
					//程序细节注意的地方,StringBuilder要条用toString()方法,不要粗心忘记了
					et.setText(sb.toString());
				} catch (XmlPullParserException e) {

				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		});
	}
}

 运行结果如下图:


  • 大小: 27.1 KB
分享到:
评论
1 楼 keeponmoving 2012-04-16  
Android中一般都是使用PULL方式解析XML

相关推荐

    Android应用源码之XmlResourceParserSample.zip

    1. **初始化和解析**:在使用`XmlResourceParser`前,需要通过`Resources`类的`getXml()`方法获取一个实例,传入相应的资源ID。例如: ```java Resources resources = context.getResources(); XmlResourceParser...

    安卓Android源码——比较通用的xml解析方法.rar

    在Android资源文件中,可以使用`XmlResourceParser`解析XML,它是基于Pull解析器的,专为处理Android资源设计。例如,解析布局文件、首选项设置等,可以通过`Resources.getXml(int resid)`获取`XmlResourceParser`...

    安卓Android源码——XmlResourceParserSample.rar

    在“XmlResourceParserSample”中,我们可以看到如何创建和使用XmlResourceParser实例。通常,我们通过Resources类的getXml方法获取到XmlResourceParser对象。这个方法需要传入一个资源ID,对应于我们要解析的XML...

    Android xml解析实例详解

    在Android开发中,XML文件广泛用于定义用户界面布局和数据...在这个实例中,我们学习了如何使用`XmlResourceParser`从XML资源中提取数据,并在Android UI上显示。这为理解Android XML解析提供了一个基础的实践例子。

    android画图总结.pdf

    为了获取`Resources`实例,可以使用当前上下文(Context)的`getResources()`方法,例如: ```java Resources r = this.getContext().getResources(); ``` #### 三、Drawable类详解 `Drawable`是Android中用于表示...

    Android画图(以画图为例说明如何使用SDK)

    本文通过对Android画图的学习,重点介绍了如何通过`Resources`类获取资源,以及如何使用`Drawable`及其子类`BitmapDrawable`来进行绘图。这对于Android开发者,特别是那些希望深入了解Android绘图机制的开发者来说是...

    Android应用源码之比较通用的xml解析方法.zip

    本资料"Android应用源码之比较通用的xml解析方法.zip"聚焦于Android中处理XML的不同方法,旨在帮助开发者理解和掌握XML解析的核心技术。以下是对这些通用解析方法的详细说明: 1. **DOM解析**: DOM(Document ...

    Android画图学习

    它是Android绘图的核心类之一,掌握了`Paint`类的使用方法,就能更加灵活地控制绘制过程。 总之,本文介绍了Android画图学习的基础知识,包括如何获取资源、如何获取画图对象等。后续章节将深入探讨每个主题的具体...

    android解析xml源码和ppt.zip

    - 可能会通过实例演示如何在Android项目中集成并使用XML解析器。 - 可能涵盖错误处理和性能优化技巧。 5. 示例代码: - DOM解析: ```java DocumentBuilderFactory factory = DocumentBuilderFactory.new...

    Android画图学习.pdf

    `Drawable`类是Android中用于表示可以被绘制的对象的抽象类。它是图形资源的主要接口,通常用于绘制到屏幕上的对象。`Drawable`本身并不直接绘制任何东西,而是定义了一组通用的接口,具体的实现由它的子类来完成。 ...

    android 简析xml源码

    对于配置文件的解析,例如`res/values/strings.xml`,`Resources`类会使用`XmlResourceParser`(实现了`XmlPullParser`接口)来读取并加载资源。`Resources.getQuantityString(int resid, int quantity, Object... ...

    android layoutinflator

    在Android开发中,`LayoutInflater` 是一个至关重要的工具,它主要用于将XML布局文件转换为视图对象(View),使得我们可以在应用程序中展示用户界面。`LayoutInflater` 的主要用途是动态加载和实例化布局,这对于...

    应用源码之XmlResourceParserSample.zip

    在Android中,我们通常使用`Resources`类的`getXml()`方法获取一个XmlResourceParser实例。例如,以下代码展示了如何打开并解析一个XML资源: ```java Resources resources = context.getResources(); ...

    android,java,xml解析,3种解析方法,dom,pull,sax

    获取`XmlPullParser`实例,可以通过`XmlPullParserFactory`创建或直接使用Android提供的`XmlResourceParser`。 2. 配置`XmlPullParser`的属性,如输入源。 3. 开始解析,调用`next()`进入第一个事件。 4. 在循环...

    Android代码-比较通用的xml解析方法.rar

    当XML资源存储在Android工程的res/xml目录下时,可以使用`Resources.getXml(int resid)`方法获取一个`XmlResourceParser`对象,它也是基于事件的解析器,适用于解析资源文件。 以上四种方法各有优缺点,开发者应...

    Android编程设置TextView颜色setTextColor用法实例

    首先,`TextView`类提供了两个重载的`setTextColor()`方法: 1. `public void setTextColor(int color)`:此方法接受一个整数参数`color`,通常这个颜色值是通过`Color.rgb()`或`Color.argb()`静态方法构建的。`...

Global site tag (gtag.js) - Google Analytics