Методы делегата NSXMLParser не работают правильно

При первом анализе данных XML с использованием методов делегата NSXMLParser все работает правильно. Но когда я делаю то же самое, используя разные данные XML, он отображает мне предыдущие проанализированные данные вместо новых данных XML.

didStartElement принимает elementName предыдущих XML-данных и не изменяется с новым именем элемента.

- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
    NSString *citystate= [[NSString alloc]initWithData:cityStateData encoding:NSUTF8StringEncoding];
    //NSLog(citystate);
    NSData *citiesStates = [citystate dataUsingEncoding:NSUTF8StringEncoding];

    xmlParser = [[NSXMLParser alloc] initWithData:citiesStates];

    // Don't forget to set the delegate!
    xmlParser.delegate = self;

    // Run the parser
    //BOOL parsingResult = [xmlParser parse];
    [xmlParser parse];
}

-(void) parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName: (NSString *)qName attributes:(NSDictionary *)attributeDict
{
    allCityState = [[NSMutableString alloc] init];
}

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
    [allCityState appendString:string];
}

- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
    if([elementName isEqual: @"CityComboResult"])
    {
        NSString* cities = [allCityState copy];
        NSLog(cities);
        allCityState = nil;
    }
    else if([elementName isEqual: @"StateComboResult"])
    {
        NSString* states = [allCityState copy];
        NSLog(states);
        allCityState = nil;
    }
}

0 ответов

Другие вопросы по тегам