转载请注明出处: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 = 孩子