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

 

转载于:https://my.oschina.net/zhangjie9142/blog/495190

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值