質問

I have problem when parsing ksoap response.

Request Dump:

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="urn:server" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
   <SOAP-ENV:Body>
      <tns:get_event>
         <phone xsi:type="xsd:string">7827701616</phone>
      </tns:get_event>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Response Dump:

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="urn:server" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
   <SOAP-ENV:Body>
      <ns1:get_eventResponse xmlns:ns1="urn:server">
         <return xsi:type="tns:events_data">
            <events xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:events[3]">
               <item xsi:type="tns:events">
                  <groom xsi:type="xsd:string">sanskaar</groom>
                  <bride xsi:type="xsd:string">saumya</bride>
                  <event_name xsi:type="xsd:string">wedding</event_name>
                  <venue xsi:type="xsd:string">New Delhi</venue>
                  <event_date xsi:type="xsd:string">Tuesday April 14, 2014</event_date>
               </item>
               <item xsi:type="tns:events">
                  <groom xsi:type="xsd:string">sanskaar</groom>
                  <bride xsi:type="xsd:string">saumya</bride>
                  <event_name xsi:type="xsd:string">hzbrgbj</event_name>
                  <venue xsi:type="xsd:string">New Delhi</venue>
                  <event_date xsi:type="xsd:string">Tuesday April 14, 2014</event_date>
               </item>
               <item xsi:type="tns:events">
                  <groom xsi:type="xsd:string">sanskaar</groom>
                  <bride xsi:type="xsd:string">saumya</bride>
                  <event_name xsi:type="xsd:string">wedding</event_name>
                  <venue xsi:type="xsd:string">New Delhi</venue>
                  <event_date xsi:type="xsd:string">Tuesday April 14, 2014</event_date>
               </item>
            </events>
         </return>
      </ns1:get_eventResponse>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Activity code for parsing response:

ht.call(SOAP_ACTION, envelope);
SoapObject response = (SoapObject) envelope.getResponse();
System.out.print(response);//getting output here checked by debugging

for(int i=0;i<response.getPropertyCount();i++){    
       Object property = response.getProperty(i);
       if(property instanceof SoapObject)//returning false
       {
           SoapObject final_object = (SoapObject) property;
           String groom = final_object.getProperty("groom").toString();
    }
}

I am getting response of KSOAP response but i am not able to understand why i am unable to parse response.

Code execute without error but not enters in If condition because of property instanceof SoapObject returning false.

Why is this? Guide me please

役に立ちましたか?

解決

I have same kind of issue i solve it using Vector:

Parsing code:

ht.call(SOAP_ACTION, envelope);

SoapObject response = (SoapObject) envelope.getResponse();

for(int i=0;i<response.getPropertyCount();i++){    

       Vector resV = (Vector)response.getProperty(i); 
       int resVlenght = resV.size();

       for(int count = 0;count<resVlenght;count++)
       {
           HashMap<String,String> value = new HashMap<String,String>();
           String n = resV.elementAt(count).toString();
           SoapObject p = (SoapObject)resV.elementAt(count);
           System.out.print(n);

           String groom= p.getProperty("groom").toString();

       }

}

他のヒント

Object property = (SoapObject) response.getProperty(i);

try to do in this way

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top