在android中解析KSoap2响应

在android中解析KSoap2响应,android,web-services,parsing,response,ksoap2,Android,Web Services,Parsing,Response,Ksoap2,可能重复: 所以我设法在android中使用KSoap2调用了一个Web服务,但我找不到解析响应的方法 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 acess

可能重复:

所以我设法在android中使用KSoap2调用了一个Web服务,但我找不到解析响应的方法

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; }; }; 
}
这是我用来调用Web服务的代码

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();
        }
SoapObject请求=新的SoapObject(名称空间、方法名称);
//请求。添加属性(“摄氏度”、“32”);
SoapSerializationEnvelope soapEnvelope=新的SoapSerializationEnvelope(soapEnvelope.VER11);
//soapEnvelope.dotNet=true;
setOutputSoapObject(请求);
soapEnvelope.dotNet=true;
AndroidHttpTransport aht=新的AndroidHttpTransport(URL);
试一试{
aht.call(SOAP\u动作,soapEnvelope);
//SoapPrimitive结果字符串=(SoapPrimitive)soapEnvelope.getResponse();
SoapObject resultsRequestSOAP=(SoapObject)soapEnvelope.bodyIn;
int elementCount=resultsRequestSOAP.getPropertyCount();
如果(元素计数>0){
SoapObject元素;

对于(int i=0;i您可以设置自动编组。有关一些教程的链接,请查看ksoap2 android项目的“链接”部分。

看看这里,我相信这段代码对于使用复杂类型和使用KSOAP返回复杂类型数组进行了优化: