天气预报XML格式城市信息解析

在写天气预报简单程序时,对XML格式的城市数据进行解析,存储在已经建立的数据库中,以下为简单解析方法:

/**
     * 解析网络返回的XML数据
     * @param response  网络返回数据字符串
     * @param happinessWeatherDB    数据库实例对象
     * @return  如果response不为空,解析完成并存储在数据库,返回true;如果response为空,不进行解析,返回false
     */
    public synchronized static boolean ParseXML(String response, HappinessWeatherDB happinessWeatherDB) {
        try {
            if (!TextUtils.isEmpty(response)){

                XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
                XmlPullParser xmlPullParser = factory.newPullParser();
                xmlPullParser.setInput(new StringReader(response));
                int eventType = xmlPullParser.getEventType();

                City city=new City();

                while (eventType != xmlPullParser.END_DOCUMENT) {
                    String str = xmlPullParser.getName();
                    switch (eventType) {
                        case XmlPullParser.START_TAG: {
                            if ("weaid".equals(xmlPullParser.getName())) {
                                int id = Integer.parseInt(xmlPullParser.nextText());
                                city.setWeather_id(id);
                            } else
                            if ("citynm".equals(xmlPullParser.getName())) {
                                String name = xmlPullParser.nextText();
                                city.setCityName(name);
                            } else if ("cityid".equals(xmlPullParser.getName())) {
                                String code = xmlPullParser.nextText();
                                city.setCity_Code(code);
                            }
                            break;
                        }
                        case XmlPullParser.END_TAG: {
                            // 将解析出来的数据存储到City表
                            if(str.startsWith("item_")) {
                                happinessWeatherDB.saveCity(city);
                            }
                            break;
                        }
                        default:
                            break;
                    }
                    eventType = xmlPullParser.next();
                }
                return true;
            }
        }
        catch (XmlPullParserException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return false;
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值