2013-04-12 12 views
7

Mam usługę WWW, która zwraca dane XML. ale w danych otrzymuję pola Null na początku. Aktualne dane są również dostępne, ale po nich pojawiają się pola Null. Uzyskuję dostęp do usługi internetowej w systemie Android za pomocą ksoap2. Zmienna SoapObject ma pełne dane, ale ma również takie puste pole, co jest dość kłopotliwe, tworząc problem z tą usługą. tutaj możesz zobaczyć, przy uruchomieniu nie ma nic, ale później ma dane zaczynające się od Tag "Tytuł". Usługa WWW zwracająca obiekty NULL na początku danych

04-12 10:55:09.405: D/ENVELOPE(1394): GetGuestEventsListingForServiceResponse{GetGuestEventsListingForServiceResult=anyType{schema=anyType{element=anyType{complexType=anyType{choice=anyType{element=anyType{complexType=anyType{sequence=anyType{element=anyType{}; element=anyType{}; element=anyType{}; element=anyType{}; element=anyType{}; element=anyType{}; element=anyType{}; element=anyType{}; element=anyType{}; element=anyType{}; }; }; }; }; }; }; }; diffgram=anyType{NewDataSet=anyType{Table=anyType{Title=THE CLUSTER DAY-1, JUNKOVATION; Description=anyType{}; EventDate=Apr 12, 2013; EventTime=5:00 PM; Venue=BLOCK 13-306; CreatedBy=16689; CreatedOn=2013-04-11T09:52:07.163+05:30; EventFor=All; Type=Internal; IsActive=true; }; 
+0

Czy możesz podzielić się swoimi formatami WSDL dla żądania i odpowiedzi? – Swayam

+0

Sprawdź również swoją stronę serwera pod kątem '' i możesz ją po prostu usunąć, ponieważ wszystkie puste dane znajdują się wewnątrz znacznika ''. – Swayam

Odpowiedz

1

Nie rozumiem, gdzie jest problem. Jeśli wynik formatowania String jako XML, można uzyskać w ten sposób:

<GetGuestEventsListingForServiceResponse> 
    <GetGuestEventsListingForServiceResult> 
    <schema> 
     <element> 
      <complexType> 
      <choice> 
       <element> 
       <complexType> 
        <sequence> 
        <element/> 
        <element/> 
        <element/> 
        <element/> 
        <element/> 
        <element/> 
        <element/> 
        <element/> 
        <element/> 
        <element/> 
        </sequence> 
       </complexType> 
       </element> 
      </choice> 
      </complexType> 
     </element> 
    </schema> 
    <diffgram> 
     <NewDataSet> 
     <Table> 
      <Title>THE CLUSTER DAY-1, JUNKOVATION</Title> 
      <Description/> 
      <EventDate>Apr 12, 2013</EventDate> 
      <EventTime>5:00 PM</EventTime> 
      <Venue>BLOCK 13-306</Venue> 
      <CreatedBy>16689</CreatedBy> 
      <CreatedOn>2013-04-11T09:52:07.163+05:30</CreatedOn> 
      <EventFor>All</EventFor> 
      <Type>Internal</Type> 
      <IsActive>true</IsActive> 
     </Table> 
     </NewDataSet> 
    </diffgram> 
    </GetGuestEventsListingForServiceResult> 
</GetGuestEventsListingForServiceResponse> 

Jeśli masz na myśli, dlaczego są tacy elementem opróżnia, trzeba sprawdzić usługę internetową na stronie serwera. Jeśli łączysz się z usługą sieciową ".NET" po stronie serwera, spróbuj ustawić wiązanie jako BasicBinding

+1

Nie mam bezpośredniego dostępu do usług WWW i szukam zoptymalizowanego rozwiązania, aby obsłużyć je po stronie klienta, zaimplementowałem je w pewien sposób, używając niektórych aplikacji Java Api, takich jak split, replace i all. Ale nie wydaje się dobrym rozwiązaniem. –

+0

Jeśli nie możesz zmodyfikować kodu po stronie serwera, jedyną rzeczą, którą możesz zrobić, to zignorować bezużyteczne węzły odpowiedzi i rozważyć, z czym musisz sobie poradzić. W tym konkretnym przypadku zignoruj, jeśli węzeł jest nazywany "schematem" i postępuj, jeśli węzeł to "NewDataSet". Nawiasem mówiąc, jeśli dobrze pamiętam, ta odpowiedź ma miejsce, gdy powiązanie nie jest ustawione jako BasicBinding – kinghomer

Powiązane problemy