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