android xml 解析通用方法

  private String singerCount="5";
    public List<String> getSongerFromSongName(String songName) throws Exception
    {
        List<String> songers = null;
        
        XmlPullParser parser = Xml.newPullParser();
        
        parser.setInput(getXml(songName) , "UTF-8");
        int event = parser.getEventType();
        while (event != XmlPullParser.END_DOCUMENT)
        {
            switch (event)
            {
                case XmlPullParser.START_DOCUMENT:
                    songers = new ArrayList<String>();
                    break;
                
                case XmlPullParser.START_TAG:
                    if ("name".equals(parser.getName()))
                    {
                        songers.add(parser.nextText());
                    }
                    break;
                
                case XmlPullParser.END_TAG:
                    
                    break;
            }
            event = parser.next();
        }
        return songers;
    }
    
    public InputStream getXml(String songName) throws Exception
    {
        String strUrl = "http://api.douban.com/music/subjects?tag=" + songName
                + "&start-index=1&max-results="+singerCount+"&apikey=0da34e8146d71dd228e9eb83d4855976";
        ByteArrayInputStream stream = null;
        DefaultHttpClient httpclient = new DefaultHttpClient();
        HttpGet httpget = new HttpGet(strUrl);
        ResponseHandler<String> responseHandler = new BasicResponseHandler();
        
        String content = httpclient.execute(httpget , responseHandler);
        stream = new ByteArrayInputStream(content.getBytes());
        
        return stream;
    }

  

posted @ 2012-02-09 18:35  来了就看看  阅读(418)  评论(0编辑  收藏  举报