android 利用pull解析xml数据

数据如下

<videoNews>
<c:forEach items="${videos}" var="video" >
    <news id="${video.getId() }" >
         <title>${video.getName() }</title>
         <time>${video.getTime() }</time>
     </news>
</c:forEach>
</videoNews>

获取inputstream

String path="http://222.133.40.188:8080/androidServer/test";
        URL url=new URL(path);
        HttpURLConnection connection=(HttpURLConnection) url.openConnection();
        connection.setConnectTimeout(5000);
        connection.setRequestMethod("GET");
        if(connection.getResponseCode()==200){
            InputStream inStream=connection.getInputStream();
            //获取文件流,将文件转换为xml
            return parseXml(inStream);
        }else{
            return null;
        }

解析inputstream--》xml

private List<News> parseXml(InputStream inStream) throws XmlPullParserException, IOException {
        News news=null;
        List<News> newsList=new ArrayList<News>();
        XmlPullParser pull=Xml.newPullParser();
        pull.setInput(inStream, "utf-8");
        int event=pull.getEventType();
        while(event!=XmlPullParser.END_DOCUMENT){
            switch (event) {
            case XmlPullParser.START_TAG:
                if("news".equals(pull.getName())){
                    int id=Integer.parseInt(pull.getAttributeValue(0));
                    news=new News();
                    news.setId(id);
                }else if("title".equals(pull.getName())){
                    String name=pull.getText();
                    news.setName(name);
                }else if("time".equals(pull.getName())){
                    String time=pull.getText();
                    news.setTime(time);
                }
                break;
            case XmlPullParser.END_TAG:
                if("news".equals(pull.getName())){
                    newsList.add(news);
                }
            break;
            
            }
            event=pull.next();
        }
        return newsList;
    }

 

posted @ 2014-09-13 15:34  Jason_Msbaby  阅读(195)  评论(0编辑  收藏  举报