Android解析xml文件

一.主要实现

1.利用android api   XmlPullParser实现xml文件解析


二.关键代码

public void pullxml(View v){
        //获取资源文件并转化为输入流
        try {
            InputStream is=ClassLoader.getSystemResourceAsStream("hey.xml");
            //获取xml解析器对象
            XmlPullParser xmlPullParser= Xml.newPullParser();
            //获取输入流,并设置编码格式
            xmlPullParser.setInput(is,"utf-8");
            //获取节点类型
            int type=xmlPullParser.getEventType();
            while (type!= XmlPullParser.END_DOCUMENT){//如果文件不是结束符号的话
                switch (type){
                    case XmlPullParser.START_TAG :
                        if(xmlPullParser.getName().equals("weather")){
                            cityList=new ArrayList<>();
                        }
                        else if(xmlPullParser.getName().equals("city")){
                            city=new City();
                        }
                        else if(xmlPullParser.getName().equals("name")){
                            city.setName(xmlPullParser.nextText());
                        }
                        else if(xmlPullParser.getName().equals("temperature")){
                            city.setTemperature(xmlPullParser.nextText());
                        }
                        else if(xmlPullParser.getName().equals("pm25")){
                            city.setPm25(xmlPullParser.nextText());
                        }
                        else if(xmlPullParser.getName().equals("forecast")){
                            city.setForecast(xmlPullParser.nextText());
                        }
                        break;
                    case XmlPullParser.END_TAG :
                        if(xmlPullParser.getName().equals("city"))
                           cityList.add(city);
                        break;
                }
                type=xmlPullParser.next();
            }
            for (City cit:cityList) {
                System.out.print(cit.toString());
            }
        } catch (XmlPullParserException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

三.主要方法介绍


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值