Android解析自定义xml文件(方案一)
16lz
2021-01-23
转载请注明出处: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_item07-15 21:46:10.620: D/XmlParseConfig(10194): name is:item_name,value is:item107-15 21:46:10.620: D/XmlParseConfig(10194): element is :test_item07-15 21:46:10.620: D/XmlParseConfig(10194): name is:item_name,value is:item207-15 21:46:10.620: D/XmlParseConfig(10194): element is :test_folder07-15 21:46:10.620: D/XmlParseConfig(10194): name is:folder_name,value is:folder107-15 21:46:10.620: D/XmlParseConfig(10194): element is :test_folder07-15 21:46:10.630: D/XmlParseConfig(10194): name is:folder_name,value is:folder207-15 21:46:10.630: D/XmlParseConfig(10194): element is :null07-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 = 孩子
更多相关文章
- android内存溢出处理方式之一
- Mika Mobile 谈论 Android 游戏开发:一个吵闹而让人讨厌的孩子
- 使用ui.router如何让一个控制器成为另一个控制器的孩子?
- Linux hostname主机名配置文件/etc/hosts详解 详细出处参考:http:
- TP-link 无线路由器WDS设置方法图解_无线桥接设置 详细出处参考:h
- 如何让父母与孩子一起成长?
- 孩子放在父母的兄弟姐妹后面。
- 从孩子那里访问父类的财产
- android listview优化几种写法 详细出处参考:http://www.jb51.ne