2010-10-16 8 views
5

Eventuali duplicati:
Parsing ksoap2 responseParse KSoap2 risposta in Android

così sono riuscito a chiamare un webservice utilizzando KSoap2 in Android, ma non riesco a trovare un modo per analizzare la risposta. ..

So here's what I receive from the webservice 
anyType{ 
WORCCategoriaSubcategoriaRecord=anyType{ssENCategoria=anyType{Id=1; Nome=Problema na rua; }; ssENSubcategoria=anyType{Id=1; Nome=Falta de acesso; Imagem=anyType{}; CategoriaId=1; }; }; 

WORCCategoriaSubcategoriaRecord=anyType{ssENCategoria=anyType{Id=1; Nome=Problema na rua; }; ssENSubcategoria=anyType{Id=2; Nome=Falta de Passadeira; Imagem=anyType{}; CategoriaId=1; }; }; 
} 

Ed ecco il codice che sto usando per chiamare il webservice ...

SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); 
     //request.addProperty("Celsius", "32"); 

     SoapSerializationEnvelope soapEnvelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
     //soapEnvelope.dotNet = true; 
     soapEnvelope.setOutputSoapObject(request); 
     soapEnvelope.dotNet = true; 
     AndroidHttpTransport aht = new AndroidHttpTransport(URL); 
     try{ 
      aht.call(SOAP_ACTION, soapEnvelope); 
      //SoapPrimitive resultString = (SoapPrimitive)soapEnvelope.getResponse(); 
      SoapObject resultsRequestSOAP = (SoapObject) soapEnvelope.bodyIn; 
      int elementCount = resultsRequestSOAP.getPropertyCount(); 

      if(elementCount>0){ 
       SoapObject element; 
       for(int i = 0;i<elementCount;i++){ 
        element = (SoapObject)resultsRequestSOAP.getProperty(i); 
       } 
      } 

     }catch(Exception ex){ 
      ex.printStackTrace(); 
     } 

C'è un modo per analizzarlo "facilmente" senza dover attraversare tutte le proprietà "manualmente"? qualcosa come un parser XML ...

risposta

1

È possibile impostare il marshalling automatico. Controlla la sezione dei collegamenti sul progetto ksoap2-android per i collegamenti ad alcuni tutorial.