2011-04-03 70 views
1

我有一個web服務的連接,接收的數據不等於「零」,響應SOAP UI顯示是這樣的;iPhone SDK:幫助我解析TBXML的XML解析

<soap:Envelope 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
> 
-<soap:Body> 
-<GroupResponse xmlns="http://tempuri.org/"> 
    -<GroupResult> 
    -<GroupClass> 
    -<Groupid>48937</Groupid> 
    -<GroupName>test</GroupName> 
     -<Members> 
     -<MemberClass> 
      -<memberID>4699860</memberID> 
      -<memberNAME>nazan</memberNAME> 
      -<memberLASTNAME>torun</memberLASTNAME> 
      -<memberPHONE>292930412452</memberPHONE> 
      -<memberBIRTH>02.04.1980</memberBIRTH> 
      -<memberMARRIAGE>01.11.2009</memberMARRIAGE> 
     </MemberClass> 
     -<MemberClass> 
       ...has lots of member 

我怎樣才能得到theese與TBXML? 這是我的代碼,但它崩潰..

NSArray *propertyArray = [NSArray arrayWithObjects:@"Members",@"memberID",@"memberNAME",@"memberLASTNAME",@"memberPhone",@"memberBIRTH",@"memberMARRIAGE",nil]; 

TBXML * tbxml = [[TBXML alloc] initWithXMLData:GrupRecievedData]; 
     TBXMLElement *root = tbxml.rootXMLElement; 
     if (root) { 
      NSLog(@"root: %@",[TBXML elementName:root]); 

      TBXMLElement *item = [TBXML childElementNamed:@"soap:Body" parentElement:root]; 
      TBXMLElement *item1 = [TBXML childElementNamed:@"GroupResponse" parentElement:item]; 
      TBXMLElement *item2 = [TBXML childElementNamed:@"GroupResult" parentElement:item1]; 
      TBXMLElement *item3 = [TBXML childElementNamed:@"Groupid" parentElement:item2]; 
      TBXMLElement *item4 = [TBXML childElementNamed:@"GroupName" parentElement:item3]; 
      TBXMLElement *item5 = [TBXML childElementNamed:@"Members" parentElement:item4]; 

我試圖在數組對象來分析,但我崩潰的「TBXMLElement *item1 = [TBXML childElementNamed:@"GroupResponse" parentElement:item];」 我沒有對解決這個問題的任何想法什麼..

回答

1

在根目錄和調試器窗口中放置一個斷點展開根看看是否有childElement soap:Body然後展開childElement soap:Body看看你是否有childElement GroupResponse ..從你發佈的XML我試過了, Groupid,Groupid,GroupName,成員是兄弟姐妹,MemberClass是firstChild的成員,MemberId是memberChild的firstChild,MemberName,MemberPhone.etc是MemberId的nextSiblings。 enter image description here

+0

感謝兄弟,它的工作原理!我解決了這個問題..;) – Relower 2011-04-03 20:42:08

0

您是否嘗試設置一箇中斷點並逐句通過代碼以查看每個調用實際返回的內容?此外,它崩潰的錯誤將有所幫助。我的第一個猜測是[TBXML childElementNamed:@"soap:Body" parentElement:root]返回零。然後在下一行中,您正在尋找TBXML代碼可能不喜歡的無「項目」的孩子。