im trying to parse child data that is sub_category and show it, but will only show the corresponding sub_category of the parent category. I managed to process the data of the parent, but I had a problem parsing the child.
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict { if([elementName isEqualToString:@"category"]){ dataCurrent = [dataFileHolder alloc]; } } - (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string { currentList = [[NSMutableString alloc] initWithString:[string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]]; } - (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName { if([elementName isEqualToString:@"name"]){ dataCurrent.nameOfCat = currentList; } if ([elementName isEqualToString:@"description"]){ dataCurrent.descriptionOfCat = currentList; } if ([elementName isEqualToString:@"image"]) { dataCurrent.imageLink = currentList; } if ([elementName isEqualToString:@"category"]) { [listPopulated addObject:dataCurrent]; dataCurrent = nil; currentList = nil; } }
and the xml file is similar to this
<category> <name>Food</name> <description>food description</description> <image> Link Here </image> <sub_cat> <sub_name>Sub name</sub_name> <sub_desc>sub cat description</sub_desc> <sub_image> Link </sub_image> </sub_cat> <sub_cat> <sub_name>Sub name</sub_name> <sub_desc>sub cat description</sub_desc> <sub_image> Link </sub_image> </sub_cat> </category>
and I studied Event Driven XML Parsing and also found the gud link from one of the xml-parse-only-certain-child-elements streams, but in the end I was still pretty confused about XML and parsing. I may need a lamer term. And I would like to know how to make my parsing part.
source share