Вы должны проверить все элементы здесь, так как вы создаете NSMutableString только для name
элементов.
-(void) parser:(NSXMLParser *) parser didStartElement:(NSString *)
elementName namespaceURI (NSString *) namespaceURI
qualifiedName:(NSString *) qName
attributes:(NSDictionary *) attributeDict {
if( [elementName isEqualToString:@"name"])
{
if (!soapResults)
{
soapResults = [[NSMutableString alloc] init];
}
elementoEncontrado = YES;
}
}
и освобождаете / nil ваши soapResults
здесь, а также устанавливаете elementoEncontrado
до NO
здесь
-(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName{
if ([elementName isEqualToString:@"name"])
{
// copy or retain this, unless ARC.
name=soapResults;
}
if ([elementName isEqualToString:@"subname"])
{
subname=soapResults;
}
if ([elementName isEqualToString:@"age"])
{
age=soapResults;
}
NSLog(@"%@", name, subname, age);
[soapResults release];
soapResults = nil;
elementoEncontrado = NO;
}