使用Pull解析XML文件

XmlPullParser parser = Xml.newPullParser();
        try {
            parser.setInput(getAssets().open("actors.xml"), "utf-8");
            int event = parser.getEventType();

            boolean flag = true;
            String tagname = "";
            Actors ac = null;
            String province_name = "";

            while(flag){
                switch (event) {
                case XmlPullParser.START_DOCUMENT:
                    list = new ArrayList<Actors>();
                    break;

                case XmlPullParser.START_TAG:
                    tagname = parser.getName();

                    if(tagname.equals("province")){

                        province_name = parser.getAttributeValue(null, "province_name");
                    }
                    if(tagname.equals("actor")){
                        ac = new Actors();
                        ac.setId(Integer.parseInt(parser.getAttributeValue(null, "id")));
                        ac.setUname(parser.getAttributeValue(null, "uname"));
                        ac.setProvince_name(province_name);
                    }
                    break;

                case XmlPullParser.TEXT:
                    if(tagname.equals("addr")){
                        ac.setAddr(parser.getText());
                    }else if(tagname.equals("work")){
                        ac.setWork(parser.getText());
                    }else if(tagname.equals("imageurl")){
                        String url = parser.getText();
                        ac.setImageurl("/mnt/sdcard"+url);
                    }
                    break;

                case XmlPullParser.END_TAG:
                    tagname = parser.getName();
                    if(tagname.equals("actor")){
                        list.add(ac);
                        ContentValues values = new ContentValues();
                        for(Actors a : list){
                            values.put("province_name", a.getProvince_name());
                            values.put("uname", a.getUname());
                            values.put("addr", a.getAddr());
                            values.put("work", a.getWork());
                            values.put("imageurl", a.getImageurl());
                        }
                        db.insert("actors", null, values);
                    }
//                  if(tagname.equals("province")){
//                      province_name = "";
//                  }
                    tagname = "";
                    break;

                case XmlPullParser.END_DOCUMENT:
                    flag = false;
                    break;
                }
                event = parser.next();
            }
        } catch (XmlPullParserException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值