读取 xml 到list

解析XML文件并构建菜单数据结构

String fileName = "AdapterModultSetting.xml";

MainSettingData mainSettingData = null;

SubSettingData subSettingData = null;

List<MainSettingData> mainSettingDatas = null;

List<SubSettingData> subSettingDatas = null;

//第一步--------读SharedPreferences

//第一步--------从assets中获得xml数据

InputStream is = mContext.getResources().getAssets().open(fileName);

XmlPullParser parse = Xml.newPullParser();

parse.setInput(is, "utf-8");

int type = parse.getEventType();

while (type != XmlPullParser.END_DOCUMENT) {

switch (type) {

case XmlPullParser.START_DOCUMENT:

mainSettingDatas = new ArrayList<MainSettingData>();

break;

case XmlPullParser.START_TAG:

Log.i("测试数据", parse.getName());

if ("main_menu_data".equals(parse.getName())) {

mainSettingData = new MainSettingData();

mainSettingData.setId(Integer.parseInt(parse.getAttributeValue(parse.getNamespace(), "id")));//save parameter

mainSettingData.setTitle(parse.getAttributeValue(parse.getNamespace(), "title"));

subSettingDatas = new ArrayList<SubSettingData>();//子菜单

}

if (mainSettingData != null) {

if ("sub_menu_data".equals(parse.getName())) {

subSettingData = new SubSettingData();

subSettingData.setId(Integer.parseInt(parse.getAttributeValue(parse.getNamespace(), "id")));

subSettingData.setType(Integer.parseInt(parse.getAttributeValue(parse.getNamespace(), "type")));

subSettingData.setSubTitle(parse.getAttributeValue(parse.getNamespace(), "subTitle"));

subSettingData.setSubState(parse.getAttributeValue(parse.getNamespace(), "subState"));

subSettingData.setSubValue(Integer.parseInt(parse.getAttributeValue(parse.getNamespace(), "subValue")));

}

}

break;

case XmlPullParser.END_TAG:

if ("main_menu_data".equals(parse.getName())) {

if(subSettingData != null && subSettingDatas != null){

subSettingDatas.add(subSettingData);

}

if (mainSettingData != null && mainSettingDatas != null) {

if(subSettingDatas != null){

mainSettingData.setSubSettingDatas(subSettingDatas);//子菜单加入主菜单

}

mainSettingDatas.add(mainSettingData);

}

}

break;

}

type = parse.next();

}

is.close();

数据在mainSettingDatas中

转载于:https://www.cnblogs.com/sode/archive/2011/09/05/2167569.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值