Методы делегата 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;
}
}