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

XML解析实例

发布时间:2020-12-16 07:40:30 所属栏目:百科 来源:网络整理
导读: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 androi
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>

(编辑:李大同)

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

    推荐文章
      热点阅读