加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

使用原始XML资源

发布时间:2020-12-15 23:43:15 所属栏目:百科 来源:网络整理
导读:如果项目中使用到了一些原始的XML文件,那么,我们可以定义一些XML 文件供工程使用。XML文件定义在工程的resxml目录下,通过Resource.getXML()方法访问。 获得原始XML文件的基本思路是,通过Resource.getXML()方法获得XML原始文件,得到XMLResourceParser对

如果项目中使用到了一些原始的XML文件,那么,我们可以定义一些XML 文件供工程使用。XML文件定义在工程的resxml目录下,通过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;

	@Override
	public 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() {

			@Override
			public void onClick(View arg0) {
				int counter = 0;// 定义计数器
				StringBuilder sb = new StringBuilder("");// 实例化StringBuilder
				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();
							// 判断标签名称是否等于customer
							if (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) + "nn");
							}
						} 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>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读