使用原始XML资源

来源:互联网 发布:java如何判断文件大小 编辑:程序博客网 时间:2024/04/29 21:07

如果项目中使用到了一些原始的XML文件,那么,我们可以定义一些XML 文件供工程使用。XML文件定义在工程的res\xml目录下,通过Resource.getXML()方法访问。

获得原始XML文件的基本思路是,通过Resource.getXML()方法获得XML原始文件,得到XMLResourceParser对象,通过该对象来判断是文档的开始还是结尾、某个标签的开始还是结尾,并通过一些获得属性的方法来遍历XML文件,从而访问XML文件的内容。下面示例演示如何访问XML文件的内容,并将内容显示在一个TextView中。

Activity:

package com.lovo;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;public class TestXMLActivity extends Activity {private Button myButton;private TextView myTextView;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// 设置当前Activity的内容布局视图setContentView(R.layout.main);// 通过findViewById方法获得Button实例myButton = (Button) findViewById(R.id.btn);// 通过findViewById方法获得TextView实例myTextView = (TextView) findViewById(R.id.xmlTextView);// 设置单击事件的监听器myButton.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {int counter = 0;// 定义计数器StringBuilder sb = new StringBuilder("");// 实例化StringBuilderResources 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();// 判断标签名称是否等于customerif (name.equals("customer")) {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() == XmlResourceParser.END_TAG) {} else if (xrp.getEventType() == XmlResourceParser.TEXT) {}// 下一个标签xrp.next();}// 将StringBuilder设置为TextView的文本myTextView.setText(sb.toString());} catch (Exception e) {e.printStackTrace();}}});}}

布局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/xmlTextView"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="" />    <Button        android:id="@+id/btn"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="获取XML内容" /></LinearLayout>


原始XML:

<?xml version="1.0" encoding="utf-8"?><resources><!-- 子元素及属性名称任意 -->    <customer        name="tom"        age="20"        email="tom@yahoo.com"        gender="male" />    <customer        name="kite"        age="21"        email="kite@yahoo.com"        gender="male" /></resources>