pull解析

public class MainActivityextends Activity {
    String path="http://www.sciencenet.cn/xml/iphoneInterface.aspx?type=news&nums=20&pass=";
    private int eventType;
    private ListView list_id;
    
    Handler han=new Handler(){
        public void handleMessage(android.os.Message msg) {
            @SuppressWarnings("unchecked")
            
            final List<Bean> lis = (List<Bean>)msg.obj;
            list_id.setAdapter(new MyAdapter(MainActivity.this,lis));
            list_id.setOnItemClickListener(new OnItemClickListener() {

                @Override
                public void onItemClick(AdapterView<?> arg0, View arg1,
                        int arg2, long arg3) {
                    Intent in=new Intent(MainActivity.this, MainActivity2.class);
                    String link = lis.get(arg2).getLink();
                    in.putExtra("link", link);
                    startActivity(in);
                }
            });
        };
    };
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        list_id = (ListView)findViewById(R.id.list_id);
        new Thread(){
            public void run() {
                 getData();
            };
        }.start();
    }
    private void getData() {
        
        try {
            //读取初始的URL转换成URL类对象
            URL url =new URL(path);
            //打开URL连接
                HttpURLConnection conn = (HttpURLConnection)url.openConnection();
                //设置连接
                conn.setRequestMethod("GET");
                //连接
                conn.connect();
                //读取字符串流
                InputStream inStream = conn.getInputStream();

//                BufferedReader but=new BufferedReader(new InputStreamReader(inStream,"utf-8"));
//                StringBuffer str=new StringBuffer();
//                while (true) {
//                    String readLine = but.readLine();
//                    if(readLine!=null){
//                        str.append(readLine);
//                    }else{
//                        break;
//                    }
//                }
    //            Log.i("zzz", str.toString());
               getPull(inStream);
//                Message msg=Message.obtain();
//                msg.obj=pull;
//                han.sendMessage(msg);
            
        } catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (ProtocolException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

//pull解析

    private void getPull(InputStream inStream) {
        String name = null;
        List<Bean> list = new ArrayList<Bean>();
        Bean bean = null;
        // 解析全部的xml
        // boolean isParse = true;
        try {
            // 创建一个xmlPullParser的工厂
            XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
            // 获取一个解析实例
            XmlPullParser parse = factory.newPullParser();
            // 设置输入流的编码格式
            parse.setInput(inStream, "UTF-8");
            // 当前事件的类型
            int eventType = parse.getEventType();

            while (eventType != XmlPullParser.END_DOCUMENT) {
                Log.i("zzz","name的值:"+name);
                switch (eventType) {
                case XmlPullParser.START_DOCUMENT:
                    Log.i("zzz","开始" );
                    
                    break;

                case XmlPullParser.START_TAG:
                    name = parse.getName();

                    if ("item".equals(name)) {
                        bean = new Bean();
                    }
                    break;
                    
                case XmlPullParser.TEXT:
                    
                    if ("title".equals(name)) {
                        bean.setTitle(parse.getText());
                    } else if ("link".equals(name)) {
                        
                        bean.setLink(parse.getText());
                        Log.i("zzz",parse.getText() );
                    } else if ("imgs".equals(name)) {
                        bean.setImgs(parse.getText());
                    } else if ("description".equals(name)) {
                        bean.setDescription(parse.getText());
                    } else if ("copyright".equals(name)) {
                        bean.setCopyright(parse.getText());
                    } else if ("pubDate".equals(name)) {
                        bean.setPubDate(parse.getText());
                    } else if ("comments".equals(name)) {
                        bean.setComments(parse.getText());
                    }
                    break;
                case XmlPullParser.END_TAG:

                    name = parse.getName();
                    if ("item".equals(name)) {
                        list.add(bean);
                        bean = null;
                    }
                    name="";

                    break;
                }
                eventType = parse.next();
            }
            Message msg = Message.obtain();
            msg.obj = list;
            han.sendMessage(msg);
        } catch (XmlPullParserException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
    }

    
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值