HttpUtils解析xml数据

public class MainActivity extends Activity implements IXListViewListener {

    private HttpUtils utils;
    private List<Bean> list;
    private int index = 0;
    private String url = "http://www.oschina.net/action/api/tweet_list?pageIndex=";
    private MyAdapter adapter;
    private Bean bean;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        utils = new HttpUtils();
  
        list = new ArrayList<Bean>();
        initData();
    }

    private void setAdapter(){
        if(adapter==null){
            adapter = new MyAdapter(this,list);
            lv.setAdapter(adapter);
        }else{
            adapter.notifyDataSetInvalidated();
        }
    }
    private void initData() {
        utils.send(HttpMethod.GET, url + (index++),
                new RequestCallBack<String>() {

                    @Override
                    public void onFailure(HttpException arg0, String arg1) {
                        Toast.makeText(MainActivity.this, "请求失败", 0).show();
                    }

                    @Override
                    public void onSuccess(ResponseInfo<String> arg0) {
                        String string = arg0.result;
                        ByteArrayInputStream inputstream = new ByteArrayInputStream(
                                string.getBytes());
                        XmlPullParser parser = Xml.newPullParser();
                        try {
                            parser.setInput(inputstream, "utf-8");
                            int type = parser.getEventType();
                            while (type != XmlPullParser.END_DOCUMENT) {
                                String name = parser.getName();
                                switch (type) {
                                case XmlPullParser.START_TAG:
                                    if ("tweet".equals(name)) {
                                        bean = new Bean();
                                    } else if ("id".equals(name)) {
                                        bean.id = Integer.parseInt(parser
                                                .nextText());
                                    } else if ("portrait".equals(name)) {
                                        bean.portrait = parser.nextText();
                                    } else if ("author".equals(name)) {
                                        bean.author = parser.nextText();
                                    } else if ("body".equals(name)) {
                                        bean.body = parser.nextText();
                                    } else if ("pubDate".equals(name)) {
                                        bean.pubDate = parser.nextText();
                                    } else if ("imgSmall".equals(name)) {
                                        bean.imgSmall = parser.nextText();
                                    } else if ("imgBig".equals(name)) {
                                        bean.imgBig = parser.nextText();
                                    }
                                    break;

                                case XmlPullParser.END_TAG:
                                    if ("tweet".equals(name)) {
                                        list.add(bean);
                                        bean = null;
                                    }
                                    break;
                                }
                                type = parser.next();
                            }
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                        
                        setAdapter();
                    }
                });
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以处理非常复杂的xml,带节点保存,如节点a下的节点b下的name,调用可用map.get("a").get("b").get("name")如:{ "sectornum": "3", "ReturnResult": "0", "containers": { "container": [ { "shelfhight": "0.086", "cardinfos": { "cardinfo": [ { "cardname": "290.蓝田局华胥电信营业厅CDMA基站/BTS529/架1列1/框3槽(0)HECM" }, { "cardname": "290.蓝田局华胥电信营业厅CDMA基站/BTS529/架1列1/框3槽(10)FAN" }, { "cardname": "290.蓝田局华胥电信营业厅CDMA基站/BTS529/架1列1/框3槽(9)UPEU" }, { "cardname": "290.蓝田局华胥电信营业厅CDMA基站/BTS529/架1列1/框3槽(7)CMPT" }, { "cardname": "290.蓝田局华胥电信营业厅CDMA基站/BTS529/架1列1/框3槽(2)HCPM" } ] } }, { "shelfhight": "0.308", "cardinfos": { "cardinfo": [ { "cardname": "290.蓝田局华胥电信营业厅CDMA基站/BTS529/架1列1/框1槽(2)CRFU" }, { "cardname": "290.蓝田局华胥电信营业厅CDMA基站/BTS529/架1列1/框1槽(4)CRFU" }, { "cardname": "290.蓝田局华胥电信营业厅CDMA基站/BTS529/架1列1/框1槽(0)CRFU" } ] } }, { "shelfhight": "0.086" }, { "shelfhight": "0.044" } ] }, "rackname": "HW401C", "asset": { "comments": "", "buydate": "", "assetcardno": "B", "category": "" }, "barcode": "", "version": "", "entity": { "entitycode": "LTJHXYYCX01/XA-HWMACBTS529", "installaddress": "", "entityspec": "BTS", "entityname": "蓝田局华胥电信营业厅CDMA基站/BTS529", "entityid": "901061314", "model": "HUAWEI BTS3900", "vendorname": "HuaWei" }, "ReturnInfo": "成功" }

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值