Pull解析xml文件时工具类的代码

来源:互联网 发布:购买海关数据 编辑:程序博客网 时间:2024/05/22 05:33
package com.bwie.test.utils;

import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

import org.xmlpull.v1.XmlPullParser;

import android.content.res.XmlResourceParser;
import android.util.Xml;

import com.bwie.test.bean.News;
import com.lidroid.xutils.HttpUtils;
import com.lidroid.xutils.http.client.HttpRequest.HttpMethod;

public class RequestData {
    
    
    private static List<News> list=null;
    
    public static List<News> parse(InputStream is){
        
        try {
            
            //创建pull对象
            XmlPullParser p=Xml.newPullParser();
            //设置解析的输入流
            p.setInput(is, "utf-8");
            //创建对象
            News ne=null;
            //得到xml标签的type类型
            int type=p.getEventType();
            
            while(type!=XmlResourceParser.END_DOCUMENT)
            {    
                //得到标签的名字
                String name=p.getName();
                
                switch (type) {
                
                case XmlResourceParser.START_DOCUMENT:
                    list = new ArrayList<News>();
                    
                    break;
                    
                case XmlResourceParser.START_TAG:
                    
                    if("news".equalsIgnoreCase(name)){
                        ne=new News();
                    }else if("id".equalsIgnoreCase(name)){
                        ne.id=p.nextText();
                    }
                    else if("title".equalsIgnoreCase(name)){
                        ne.title=p.nextText();
                    }else if("body".equalsIgnoreCase(name)){
                        ne.body=p.nextText();
                    }else if("author".equalsIgnoreCase(name)){
                        ne.author=p.nextText();
                    }else if("pubDate".equalsIgnoreCase(name)){
                        ne.pubDate=p.nextText();
                    }
                    
                    break;
                    
                case XmlResourceParser.END_TAG:
                    
                    //结束标签
                    if("news".equalsIgnoreCase(name)){
                        list.add(ne);
                    }
                    break;
                }
                //遍历下一个type
                type=p.next();
            }
            
            
            
            
            
        } catch (Exception e) {
            // TODO: handle exception
        }
        
        
        
        
        return list;
        
        
    }
}

0 0