2010-09-18 95 views
0

我越來越SOAP響應和解析我收到此響應時:(你可以從結果可以看出這是目前存儲的NSString是NSLoged本身包含XML格式的數據)如何解析我的iPhone應用程序中的SOAP響應?

<Menus> 

<Table1> 

<Restaurant_Name>CHICK-FIL-A</Restaurant_Name> 
<Restaurant_id>2748</Restaurant_id> 
<Phone>(404) 371-1466</Phone> 
<billing_city>DECATUR</billing_city> 
<billing_state>GA</billing_state> 
<billing_zip_code>30030</billing_zip_code> 
<billing_addr1>105 EAST TRINITY PLACE</billing_addr1> 

</Table1> 
</Menus> 

守則以上產生的響應:

-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict{ 
    if([elementName isEqualToString:@"GetMenusByZipCodeResult"]) 
    {  
     if(!soapResults) 
     { 
      soapResults = [[NSMutableString alloc] init]; 
     } 

     recordResults = TRUE; 

    } 

} 

-(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string 
{ 

    if(recordResults) 
    { 
     [soapResults appendString:string]; 
    } 
    //NSLog(@" soap: %@", soapResults); 
} 

-(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName 
{ 
    if([elementName isEqualToString:@"GetMenusByZipCodeResult"]) 
    { 

     NSLog(@"soapResult FINAL : %@",soapResults); 

     recordResults = FALSE; 
     result.text = soapResults; 
     [soapResults release]; 
     soapResults = nil; 
    } 

} 

上述提到的數據是soapResult的結果。 如何閱讀這些數據?我試圖重新解析它,但它沒有幫助。 請幫幫我。

+1

?請添加代碼,顯示您如何解析此響應字符串或數據。 – 2010-09-18 23:16:43

+0

我更新了..請看看你是否可以幫忙。 – Dovakin 2010-09-18 23:47:24

回答

2

如果你想要一個簡單的XML來的NSDictionary轉換器(包括文本節點)使用XML解析器喜歡的NSXMLParser

http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSXMLParser_Class/Reference/Reference.html

+0

朋友,我得到這個答覆,因爲我只使用NSXMLparser。(我將我的代碼添加到問題中)問題是它自己包含帶標記數據的響應,現在該怎麼做?我必須在相同的數據上再次使用NSXMLParser ...請告訴我如何解決這個問題。 – Dovakin 2010-09-18 23:25:12