LooN3y Posted May 10, 2012 Share Posted May 10, 2012 Im making a split view product search app for the iPad, that gets the data from a web service. but I'm having trouble getting the data to show up in my master tableview controller (the small table view on the left) is my parsing done correctly? - (void)connectionDidFinishLoading:(NSURLConnection *)connection { NSString *responseString = [[NSString alloc] initWithData:self.responseData encoding:NSUTF8StringEncoding]; NSString * newStr = [NSString stringWithUTF8String:[self.responseData bytes]]; [self parseXML]; } - (void) parseXML { NSLog (@"parseXML"); NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithData:self.responseData]; [xmlParser setDelegate:self]; myMasterList = [[MasterList alloc] init]; if (![xmlParser parse]) { NSLog (@"An error occurred in the parsing"); } } - (void)parserDidStartDocument:(NSXMLParser *)parser { NSLog (@"parserDidStartDocument"); inItemElement = NO; } - (void)parserDidEndDocument:(NSXMLParser *)parser { NSLog (@"parserDidEndDocument"); } // Called when the parser encounters a start element - (void) parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict { if ([elementName isEqualToString:@"str_smartsearch"]) { inItemElement = YES; } capturedCharacters = [[NSMutableString alloc] initWithCapacity:50]; capturedCharacters = [[NSMutableString alloc] initWithCapacity:250]; } - (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName { if ([elementName isEqualToString:@"description"]) { myMasterList.masterDecript = capturedCharacters; NSLog(@" decription:%@", capturedCharacters); } if ([elementName isEqualToString:@"onhand"]) { myMasterList.masterOnHand = capturedCharacters; } if ([elementName isEqualToString:@"price"]) { myMasterList.masterPrice = capturedCharacters; } if ([elementName isEqualToString:@"itemno"]) { myMasterList.masterItem = capturedCharacters; [masterArray addObject:myMasterList]; myMasterList = nil; } capturedCharacters = nil; if ([elementName isEqualToString:@"str_smartsearch"]) { inItemElement = NO; } } - (void)parser:(NSXMLParser *)parser foundCharacters:(NSMutableString *)string { if (capturedCharacters != nil) { [capturedCharacters appendString:string]; } else { [capturedCharacters isEqual:string]; } } I've token out the NS logs and such, to make it easier to read. i've been stuck on this for while. all i need is for it to show up on my master tableview and iill basically be done with this app. Link to comment https://www.insanelymac.com/forum/topic/278902-xml-parsing-done-wrong/ Share on other sites More sharing options...
Recommended Posts