Pull方法解析XML

来源:互联网 发布:js 转动效果 编辑:程序博客网 时间:2024/06/07 03:40

package com.zq.xmltest;

import java.io.IOException;
import java.io.StringReader;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlPullParserFactory;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;

public class MainActivity extends Activity {

@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    sendRequestWithHttpClient();}private void sendRequestWithHttpClient() {    // TODO Auto-generated method stub    new Thread(new Runnable(){        @Override        public void run() {            // TODO Auto-generated method stub            try {                HttpClient httpClient = new DefaultHttpClient();                HttpGet httpGet = new HttpGet("http://192.168.1.4/test/get_data.xml");                HttpResponse httpResponse = httpClient.execute(httpGet);                if(httpResponse.getStatusLine().getStatusCode() == 200)                {                    HttpEntity entity = httpResponse.getEntity();                    String response = EntityUtils.toString(entity, "utf-8");                    parseXMLWithPull(response);                }            } catch (ClientProtocolException e) {                // TODO Auto-generated catch block                e.printStackTrace();            } catch (IOException e) {                // TODO Auto-generated catch block                e.printStackTrace();            }        }        }).start();}private void parseXMLWithPull(String xmlData) {    // TODO Auto-generated method stub    try {        XmlPullParserFactory factory = XmlPullParserFactory.newInstance();        XmlPullParser xmlPullParser = factory.newPullParser();        xmlPullParser.setInput(new StringReader(xmlData));        int eventType = xmlPullParser.getEventType();        String id = "";        String name = "";        String version = "";        while(eventType != XmlPullParser.END_DOCUMENT)        {            String nodeName = xmlPullParser.getName();            switch(eventType)            {               case XmlPullParser.START_TAG:                   try {                     if("id".equals(nodeName))                     {                        id = xmlPullParser.nextText();                     }                     else if("name".equals(nodeName))                     {                         name = xmlPullParser.nextText();                     }                     else if("version".equals(nodeName))                     {                         version = xmlPullParser.nextText();                     }                     break;                   } catch (IOException e) {                        // TODO Auto-generated catch block                        e.printStackTrace();                    }               case XmlPullParser.END_TAG:               {                   if("app".equals(nodeName))                   {                       Log.d("ZQ", "id is " + id );                       Log.d("ZQ", "name is " + name);                       Log.d("ZQ", "version is " + version);                   }                   break;               }               default:                   break;            }            try {                eventType = xmlPullParser.next();            } catch (IOException e) {                // TODO Auto-generated catch block                e.printStackTrace();            }        }    } catch (XmlPullParserException e) {        // TODO Auto-generated catch block        e.printStackTrace();    }}

}

0 0
原创粉丝点击