2012-06-27 2 views
-2

Я скопировал ответ Soap, который я получаю в браузере. Как я могу разобрать этот ответ на Android с помощью мыла? Я использовал SoapObject obj = (SoapObject) mySoapEnvelop.getResponse(); Но я получаю obj.getPropertyCount() = 1.Мыльный отклик Parsing

Я смущен в этом пункте, может ли кто-нибудь помочь мне выйти ???

Вот мой полный ответ:

правда

<Data> 
    <xs:schema id="NewDataSet" > 
     <xs:element 
      name="NewDataSet" 
      msdata:IsDataSet="true" 
      msdata:Locale="" > 
      <xs:complexType> 
       <xs:choice 
        maxOccurs="unbounded" 
        minOccurs="0" > 
        <xs:element name="Table" > 
         <xs:complexType> 
          <xs:sequence> 
           <xs:element      
            name="ID" 
            minOccurs="0" 
            type="xs:int" /> 
           <xs:element 
            name="UniqueID" 
            minOccurs="0" 
            type="xs:string" 
            msdata:DataType="System.Guid, mscorlib, 
      Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>   
           <xs:element 
            name="FullName" 
            minOccurs="0" 
            type="xs:string" /> 
           <xs:element 
            name="Title" 
            minOccurs="0" 
            type="xs:string" /> 
           <xs:element 
            name="Phone" 
            minOccurs="0" 
            type="xs:string" /> 
           <xs:element 
            name="Email" 
            minOccurs="0" 
            type="xs:string" /> 
           <xs:element 
            name="CreatedDate" 
            minOccurs="0" 
            type="xs:dateTime" /> 
           <xs:element 
            name="Website" 
            minOccurs="0" 
            type="xs:string" /> 
           <xs:element 
            name="CompanyName" 
            minOccurs="0" 
            type="xs:string" /> 
           <xs:element 
            name="LeadStatus" 
            minOccurs="0" 
            type="xs:string" /> 
           <xs:element 
            name="StatusName" 
            minOccurs="0" 
            type="xs:string" /> 
           <xs:element 
            name="IsRead" 
            minOccurs="0" 
            type="xs:boolean" /> 
           <xs:element 
            name="OwnerName" 
            minOccurs="0" 
            type="xs:string" /> 
          </xs:sequence> 
         </xs:complexType> 
        </xs:element> 
       </xs:choice> 
      </xs:complexType> 
     </xs:element> 
    </xs:schema> 

    <diffgr:diffgram> 

     <NewDataSet> 
      <Table 
       diffgr:id="Table1" 
       msdata:rowOrder="0" > 
       <ID>6</ID> 
       <UniqueID>8d93aab5-086f-41bb-b8ec-03b3eb0aa463</UniqueID> 
       <FullName>bhatt</FullName> 
       <Title /> 
       <Phone /> 
       <Email /> 
       <CreatedDate>2012-02-24T13:14:06.773+05:30</CreatedDate> 
       <Website /> 
       <CompanyName>xyz</CompanyName> 
       <LeadStatus>Qualified</LeadStatus> 
       <StatusName>Approved</StatusName> 
       <IsRead>false</IsRead> 
       <OwnerName>Admin admin</OwnerName> 
      </Table> 
     </NewDataSet> 
    </diffgr:diffgram> 
</Data> 

+0

Вы можете использовать синтаксический анализатор SAX/DOM для анализа ответа. Для этого есть много учебников. – AndroGeek

+0

Но я должен использовать SOAP – Rohit

+0

Вы должны отредактировать вопрос, чтобы исправить отображение кода. Я дважды пробовал, но почему-то мои правки продолжают отвергаться? –

ответ

0

Я думаю, что вы новичок в programming.You не может разобрать этот XML-файл, так как это описание службы веб-сервиса. У Webservice были бы методы, нажмите на эти методы в вашем браузере, и вы получите xml выходные данные, которые любой клиент может вызывать и анализировать. См. Также web service in android/eclipse для анализа ваших данных.

+0

Привет всем Я успешно проанализировал комплексный ответ SOAP без использования анализатора xml .... – Rohit

1
SoapObject result = (SoapObject)envelope.bodyIn; 

if(result != null){ 

    int count = result.getPropertyCount(); 
    //TextView t = (TextView)this.findViewById(R.id.resultbox); 
    //t.setText("SOAP response:\n\n" + count); 

    SoapObject nameResult = (SoapObject) result.getProperty(0); 
    // TextView t = (TextView)this.findViewById(R.id.resultbox); 
    //t.setText("SOAP response:\n\n" + nameResult.toString()); 

    SoapObject test = (SoapObject) nameResult.getProperty(1); 
    // TextView t = (TextView)this.findViewById(R.id.resultbox); 
    // t.setText("SOAP response:\n\n" + test.toString()); 

    SoapObject dar = (SoapObject) test.getProperty(0); 
    //TextView t = (TextView)this.findViewById(R.id.resultbox); 
    //t.setText("SOAP response:\n\n" + dar.toString()); 

    SoapObject suvas = (SoapObject) dar.getProperty(0); 
    int c = dar.getPropertyCount(); 
    TextView t = (TextView)this.findViewById(R.id.resultbox); 
    t.setText("SOAP response:\n\n" + suvas.toString()); 
    //t.setText("SOAP response:\n\n" + c); 
    //SoapObject nivas = (SoapObject) suvas.getProperty(NewsId); 
    //TextView t = (TextView)this.findViewById(R.id.resultbox); 
    // t.setText("SOAP response:\n\n" + nivas.toString()); 

} 
+0

может помочь ответить на этот вопрос? http://stackoverflow.com/questions/26903238/how-to-parse-soap-response-when-child-tags-have-different-name-and-no-of-tag-are –

Смежные вопросы