Android解析自定义xml文件--Pull解析xml文件,测试demo(方案三)

转载请注明出处:http://blog.csdn.net/droyon/article/details/9346885

Pull方式解析xml文件

PullParseXml.java(在activity的onCreate等方法中执行parseXml方法运行即可)

package com.example.androidtest;

import java.io.IOException;
import java.util.ArrayList;

import org.xmlpull.v1.XmlPullParserException;

import android.content.Context;
import android.content.res.XmlResourceParser;
import android.util.Log;

public class PullParseXml {
	private static final String LOG_TAG = "PullParseXml";
	
	private static final String sTag1 = "test_item";
	private static final String sTag2 = "test_folder";
	
	private static ArrayList<String> sAll = new ArrayList<String>();
	
	public static void parseXml(Context context){
		
		XmlResourceParser parse = context.getResources().getXml(R.xml.test_config);
		
		try {
			
			while(parse.getEventType() != XmlResourceParser.END_DOCUMENT){
				
				if(parse.getEventType() == XmlResourceParser.START_TAG){
					String tagName = parse.getName();
					Log.d(LOG_TAG, "tag name is:"+tagName);
					
					if(sTag1.equals(tagName)||sTag2.equals(tagName)){
						String name = parse.getAttributeName(0);
						Log.d(LOG_TAG, "attributeName is:"+name);
//				String value = parse.getAttributeValue(0);
						String value = parse.getAttributeValue(null,name);
						Log.d(LOG_TAG, "attributeValue is:"+value);
						String text = parse.nextText();
						Log.d(LOG_TAG, "attributeText is:"+text);
						
						String temp = value + " = " + text;
						sAll.add(temp);
					}
					
				}
				
				parse.next();
				
			}
			
		} catch (XmlPullParserException e) {
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		for(String s : sAll){
			Log.d(LOG_TAG, "xml parse is:"+s);
		}
	}
}

xml文件:test_config.xml

<?xml version="1.0" encoding="utf-8"?>

<test_config version="1">
    <test_item item_name="item1">我们</test_item>
    <test_item item_name="item2">都是</test_item>
    <test_folder folder_name="folder1">好</test_folder>
    <test_folder folder_name="folder2">孩子</test_folder>
</test_config>


测试结果:

01-01 14:11:51.350: D/PullParseXml(9370): xml parse is:item1 = 我们
01-01 14:11:51.350: D/PullParseXml(9370): xml parse is:item2 = 都是
01-01 14:11:51.350: D/PullParseXml(9370): xml parse is:folder1 = 好
01-01 14:11:51.350: D/PullParseXml(9370): xml parse is:folder2 = 孩子

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hailushijie

您的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值