轉載請注明出處:http://blog.csdn.net/droyon/article/details/9336493
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>
解析類:
package hlwang.test.resource;
import java.io.IOException;
import java.util.ArrayList;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import com.android.internal.util.XmlUtils;
import android.content.Context;
import android.content.res.XmlResourceParser;
import android.util.Log;
public class XmlParseConfig {
private static final String LOG_TAG = "XmlParseConfig";
//-----------------------------------------------------
private static final int sXmlRes = R.xml.test_config;
private static final String sXmlRootTag = "test_config";
private static final String sXmlItemTag = "test_item";
private static final String sXmlFolderTag = "test_folder";
private static final String sXmlItemTagName = "item_name";
private static final String sXmlItemTagNameValue1 = "item1";
private static final String sXmlItemTagNameValue2 = "item2";
private static final String sXmlFolderTagName = "folder_name";
private static final String sXmlFolderTagNameValue1 = "folder1";
private static final String sXmlFolderTagNameValue2 = "folder2";
//-----------------------------------------------------
private static ArrayList<String> sAll = new ArrayList<String>();
public static void loadXmlCofig(Context context){
XmlResourceParser parse = context.getResources().getXml(sXmlRes);
try {
XmlUtils.beginDocument(parse,sXmlRootTag);
while(true){
XmlUtils.nextElement(parse);
String element = parse.getName();
Log.d(LOG_TAG, "element is :"+element);
if(element == null){
break;
}
if(sXmlItemTag.equals(element)){
String name = parse.getAttributeName(0);
String value = parse.getAttributeValue(0);
Log.d(LOG_TAG, "name is:"+name+",value is:"+value);
if(!sXmlItemTagName.equals(name)){
continue;
}
if(!sXmlItemTagNameValue1.equals(value)&&!sXmlItemTagNameValue2.equals(value)){
continue;
}
String text = null;
if(parse.next() == XmlPullParser.TEXT){
text = parse.getText();
}
String temp = value+" = "+text;
sAll.add(temp);
}else if(sXmlFolderTag.equals(element)){
String name = parse.getAttributeName(0);
String value = parse.getAttributeValue(0);
Log.d(LOG_TAG, "name is:"+name+",value is:"+value);
if(!sXmlFolderTagName.equals(name)){
continue;
}
if(!sXmlFolderTagNameValue1.equals(value)&&!sXmlFolderTagNameValue2.equals(value)){
continue;
}
String text = null;
if(parse.next() == XmlPullParser.TEXT){
text = parse.getText();
}
String temp = value+" = "+text;
sAll.add(temp);
}else{
}
}
for(String s:sAll){
Log.d(LOG_TAG, "xml attrSet is:"+s);
}
} catch (XmlPullParserException e) {
Log.e(LOG_TAG, "loadMmsSettings caught ", e);
} catch (NumberFormatException e) {
Log.e(LOG_TAG, "loadMmsSettings caught ", e);
} catch (IOException e) {
Log.e(LOG_TAG, "loadMmsSettings caught ", e);
} finally {
parse.close();
}
}
}
解析結果:
07-15 21:46:10.620: D/XmlParseConfig(10194): element is :test_item
07-15 21:46:10.620: D/XmlParseConfig(10194): name is:item_name,value is:item1
07-15 21:46:10.620: D/XmlParseConfig(10194): element is :test_item
07-15 21:46:10.620: D/XmlParseConfig(10194): name is:item_name,value is:item2
07-15 21:46:10.620: D/XmlParseConfig(10194): element is :test_folder
07-15 21:46:10.620: D/XmlParseConfig(10194): name is:folder_name,value is:folder1
07-15 21:46:10.620: D/XmlParseConfig(10194): element is :test_folder
07-15 21:46:10.630: D/XmlParseConfig(10194): name is:folder_name,value is:folder2
07-15 21:46:10.630: D/XmlParseConfig(10194): element is :null
07-15 21:46:10.630: D/XmlParseConfig(10194): xml attrSet is:item1 = 我們
07-15 21:46:10.630: D/XmlParseConfig(10194): xml attrSet is:item2 = 都是
07-15 21:46:10.630: D/XmlParseConfig(10194): xml attrSet is:folder1 = 好
07-15 21:46:10.630: D/XmlParseConfig(10194): xml attrSet is:folder2 = 孩子