Как мне проанализировать этот SOAP-ответ в моем приложении для iPhone? - PullRequest
0 голосов
/ 19 сентября 2010

Я получаю ответ SOAP, и при разборе ответа я получаю следующее: (Как видно из результата, который в настоящее время хранится в виде NSString, сам NSLoged содержит данные в формате xml)

<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.Как читать эти данные?Я пытался отобрать его, но это не помогает.Пожалуйста, помогите мне.

Ответы [ 2 ]

2 голосов
/ 19 сентября 2010

Если вы хотите простой конвертер XML в NSDictionary (включая текстовые узлы), проверьте http://troybrant.net/blog/2010/09/simple-xml-to-nsdictionary-converter/

2 голосов
/ 19 сентября 2010

Используйте синтаксический анализатор XML, такой как NSXMLParser

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...