关闭

XML解析实例

标签: xmlandroid
904人阅读 评论(0) 收藏 举报
分类:
package com.android.xiong.xmlrestest;

import android.app.Activity;
import android.content.res.XmlResourceParser;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		Button bt1 = (Button) findViewById(R.id.bt1);
		bt1.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// 根据XML资源的ID获取解析该资源的解析器
				// XmlResourceParSer是XmlPullParser的子类
				XmlResourceParser xrp = getResources().getXml(R.xml.book);
				try {
					StringBuilder sb = new StringBuilder("");
					// 还没有到XML文档的结尾处
					while (xrp.getEventType() != XmlResourceParser.END_DOCUMENT) {
						// 如果遇到了开始标签
						if (xrp.getEventType() == XmlResourceParser.START_TAG) {
							// 获取该标签的标签名
							String tagName = xrp.getName();
							// 如果遇到book标签
							if (tagName.equals("book")) {
								// 根据属性名来获取属性值
								String bookName = xrp.getAttributeValue(null,
										"price");
								sb.append("价格:");
								sb.append(bookName);
								// 根据属性索引来获取属性值
								String bookPrice = xrp.getAttributeValue(1);
								sb.append("   出版社日期:");
								sb.append(bookPrice);
								sb.append(" 书名:");
								// 获取文本节点的值
								sb.append(xrp.nextText());
							}
							sb.append("\n");
						}
						xrp.next();
					}
					TextView txt = (TextView) findViewById(R.id.txt1);
					txt.setText(sb.toString());
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

}



<?xml version="1.0" encoding="utf-8"?>
<books>
    <book price="90" 出版社日期="2008年">Java</book>
    <book price="80" 出版社日期="2009年">Android</book>
    <book price="70" 出版社日期="2009年">.net</book>
</books>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <Button
        android:id="@+id/bt1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="解析xml内容" />

    <TextView
        android:id="@+id/txt1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/bt1" />

</RelativeLayout>


1
1

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1127282次
    • 积分:8594
    • 等级:
    • 排名:第2222名
    • 原创:115篇
    • 转载:72篇
    • 译文:0篇
    • 评论:324条
    博客专栏
    联系方式
    最新评论