pull解析

来源:互联网 发布:java免费培训 编辑:程序博客网 时间:2024/06/04 19:19
// pull解析    public void pull(InputStream inputStream) {        DataBean data = null;        XmlPullParserFactory factory;        try {            // 进行xml的pull解析             //构建XmlPullParserFactory            factory = XmlPullParserFactory.newInstance();            //获取XmlPullParser的实例            XmlPullParser parser = factory.newPullParser();              //设置输入流  xml文件            parser.setInput(inputStream, "UTF-8");             //开始            int type_name = parser.getEventType();            while (XmlPullParser.END_DOCUMENT != parser.getEventType()) {                switch (type_name) {                case XmlPullParser.START_DOCUMENT:  //文档开始                    ls_data = new ArrayList<DataBean>();                    break;                case XmlPullParser.START_TAG:  //开始节点                    //判断如果其实节点为news                    if ("news".equals(parser.getName())) {                    //实例化data 对象                        data = new DataBean();                           //设置Id属性data.setId(Integer.parseInt(xmlPullParser.getAttributeValue(0)));                    }                     //如果对象不为空,为对象的属性赋值                    if (data != null) {                        if ("title".equals(parser.getName())) {                            data.title = parser.nextText();                        } else if ("body".equals(parser.getName())) {                            data.body = parser.nextText();                        } else if ("commentCount".equals(parser.getName())) {                            data.commentCount = parser.nextText();                        } else if ("author".equals(parser.getName())) {                            data.author = parser.nextText();                        } else if ("pubDate".equals(parser.getName())) {                            data.pubDate = parser.nextText();                        }                    }                    break;                case XmlPullParser.END_TAG:                    if ("news".equals(parser.getName())) {                        ls_data.add(data);// 储存到集合中                    }                    break;                }                type_name = parser.next();            }            hd.sendEmptyMessage(0);            //System.out.println("data=" + ls_data.toString());        } catch (Exception e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }
0 0