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. **初始化和解析**:在使用`XmlResourceParser`前,需要通过`Resources`类的`getXml()`方法获取一个实例,传入相应的资源ID。例如: ```java Resources resources = context.getResources(); XmlResourceParser...
在Android资源文件中,可以使用`XmlResourceParser`解析XML,它是基于Pull解析器的,专为处理Android资源设计。例如,解析布局文件、首选项设置等,可以通过`Resources.getXml(int resid)`获取`XmlResourceParser`...
在“XmlResourceParserSample”中,我们可以看到如何创建和使用XmlResourceParser实例。通常,我们通过Resources类的getXml方法获取到XmlResourceParser对象。这个方法需要传入一个资源ID,对应于我们要解析的XML...
在Android开发中,XML文件广泛用于定义用户界面布局和数据...在这个实例中,我们学习了如何使用`XmlResourceParser`从XML资源中提取数据,并在Android UI上显示。这为理解Android XML解析提供了一个基础的实践例子。
为了获取`Resources`实例,可以使用当前上下文(Context)的`getResources()`方法,例如: ```java Resources r = this.getContext().getResources(); ``` #### 三、Drawable类详解 `Drawable`是Android中用于表示...
本文通过对Android画图的学习,重点介绍了如何通过`Resources`类获取资源,以及如何使用`Drawable`及其子类`BitmapDrawable`来进行绘图。这对于Android开发者,特别是那些希望深入了解Android绘图机制的开发者来说是...
本资料"Android应用源码之比较通用的xml解析方法.zip"聚焦于Android中处理XML的不同方法,旨在帮助开发者理解和掌握XML解析的核心技术。以下是对这些通用解析方法的详细说明: 1. **DOM解析**: DOM(Document ...
它是Android绘图的核心类之一,掌握了`Paint`类的使用方法,就能更加灵活地控制绘制过程。 总之,本文介绍了Android画图学习的基础知识,包括如何获取资源、如何获取画图对象等。后续章节将深入探讨每个主题的具体...
- 可能会通过实例演示如何在Android项目中集成并使用XML解析器。 - 可能涵盖错误处理和性能优化技巧。 5. 示例代码: - DOM解析: ```java DocumentBuilderFactory factory = DocumentBuilderFactory.new...
`XmlPullParser`接口提供了一种解析XML的标准方式,可以使用`getXml()`方法获取`XmlPullParser`实例,然后通过`getEventType()`、`getName()`、`getAttributeValue()`等方法解析XML内容。 7. **SQLite 数据库**:...
`Drawable`类是Android中用于表示可以被绘制的对象的抽象类。它是图形资源的主要接口,通常用于绘制到屏幕上的对象。`Drawable`本身并不直接绘制任何东西,而是定义了一组通用的接口,具体的实现由它的子类来完成。 ...
对于配置文件的解析,例如`res/values/strings.xml`,`Resources`类会使用`XmlResourceParser`(实现了`XmlPullParser`接口)来读取并加载资源。`Resources.getQuantityString(int resid, int quantity, Object... ...
在Android开发中,`LayoutInflater` 是一个至关重要的工具,它主要用于将XML布局文件转换为视图对象(View),使得我们可以在应用程序中展示用户界面。`LayoutInflater` 的主要用途是动态加载和实例化布局,这对于...
在Android中,我们通常使用`Resources`类的`getXml()`方法获取一个XmlResourceParser实例。例如,以下代码展示了如何打开并解析一个XML资源: ```java Resources resources = context.getResources(); ...
获取`XmlPullParser`实例,可以通过`XmlPullParserFactory`创建或直接使用Android提供的`XmlResourceParser`。 2. 配置`XmlPullParser`的属性,如输入源。 3. 开始解析,调用`next()`进入第一个事件。 4. 在循环...
当XML资源存储在Android工程的res/xml目录下时,可以使用`Resources.getXml(int resid)`方法获取一个`XmlResourceParser`对象,它也是基于事件的解析器,适用于解析资源文件。 以上四种方法各有优缺点,开发者应...
首先,`TextView`类提供了两个重载的`setTextColor()`方法: 1. `public void setTextColor(int color)`:此方法接受一个整数参数`color`,通常这个颜色值是通过`Color.rgb()`或`Color.argb()`静态方法构建的。`...