Looks like walking away and coming back fresh minded does wonders still. This is the solution I came up with. Not too hard.
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict {
element = elementName;
if ([element isEqualToString:@"station"]) {
stationArray = [[NSMutableArray alloc] init];
station = [[NSMutableDictionary alloc] init];
name = [[NSMutableString alloc] init];
}
else if ([element isEqualToString:@"etd"]) {
destinationArray = [[NSMutableArray alloc] init];
destination = [[NSMutableString alloc] init];
}
else if ([element isEqualToString:@"estimate"]) {
estimateArray = [[NSMutableArray alloc] init];
minutes = [[NSMutableString alloc] init];
}
}
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {
///// Add Arrays to Dictionary, then Copy back to Array that sorts the Table
if ([elementName isEqualToString:@"station"]) {
[station setObject:name forKey:@"name"];
[station setObject:destinationArray forKey:@"destination"];
[station setObject:estimateArray forKey:@"minutes"];
[data addObject:[station copy]];
}
///// Add Destinations to an array
else if ([elementName isEqualToString:@"etd"]) {
[destinationArray addObject:destination];
}
///// Add minutes to an array
else if ([elementName isEqualToString:@"estimate"]) {
[estimateArray addObject:minutes];
}
}