首页 > 代码库 > android 利用pull解析xml数据

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;    }

 

android 利用pull解析xml数据