2011-09-29 85 views
1

在Android中使用SOAP從Web服務獲取單一數據並顯示良好。但是當我需要從Web服務檢索多組值時。我如何做到這一點? 。從一個webservice。,即時得到10個學生記錄與字段stu.Name,stuRegno。,stuAge.After得到這個響應後,我需要解析它存儲到本地數據庫與相應的字段名稱。我該怎麼做那?在Android中使用SOAP從Web服務獲取多個數據

我的代碼:

public class Main extends Activity { 
    private static final String METHOD_NAME = "TopGoalScorers"; 
    private static final String SOAP_ACTION = "http://footballpool.dataaccess.eu/data/TopGoalScorers"; 
    private static final String NAMESPACE = "http://footballpool.dataaccess.eu"; 
    private static final String URL = "http://footballpool.dataaccess.eu/data/info.wso?WSDL"; 

    //Called when the activity is first created. 
    @Override 
    public void onCreate(Bundle icicle) { 
     super.onCreate(icicle); 
     setContentView(R.layout.main); 

      //Buttons deaktiviert alles automatisch 

      SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); 
      request.addProperty("iTopN", 3);// username von Preferences abgeholt 
      //request.addProperty("intB", 4); 


      SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
      Toast.makeText(getApplicationContext(), request.toString(), Toast.LENGTH_LONG).show(); 
      envelope.setOutputSoapObject(request); 
      AndroidHttpTransport androidHttpTransport = new AndroidHttpTransport (URL);    
      try { 
       androidHttpTransport.call(SOAP_ACTION, envelope); 
       //Parse Response 
       SoapObject resultsRequestSOAP = (SoapObject) envelope.getResponse(); 
       String xy = resultsRequestSOAP.getProperty(0).toString(); 
       ((TextView)findViewById(R.id.lblStatus)).setText(xy); 


      } catch(Exception E) { 

       ((TextView)findViewById(R.id.lblStatus)).setText("ERROR:" + E.getClass().getName() + ": " + E.getMessage()); 

      } 
    } 

    } 

回答

0

我不明白你有什麼問題。您需要將resultsRequestSOAP轉換爲適當的數據格式(例如String)並解析它(例如通過SAX),並在解析器中收集容器中的所有數據(例如List)。