Saturday, 24 August 2013

Parsing XML and showing Parent-Child Data in Storyboard

Parsing XML and showing Parent-Child Data in Storyboard

Im currently making a project which parsed the XML below and show the
data, Im showing the data in a story board where the first TableView will
only show the main categories, in the case here its Main Name1 and Main
Name2, but what Im really trying to do is when i click on any main
category name it will navigate me to its own sub-category and not to any
other sub-category or to all, coz i tried doing it and its only showing me
all the rest of the sub-category.
<categories>
<category>
<name>Main Name1</name>
<description>given 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>
<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>
<category>
<name>Main Name2</name>
<description>given 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>
<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>
</categories>
My parsing code is like this
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString
*)elementName namespaceURI:(NSString *)namespaceURI
qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict {
if([elementName isEqualToString:@"category"] || [elementName
isEqualToString:@"sub_cat"]){
dataCurrent = [dataFileHolder alloc];
}
}
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName
namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {
if([elementName isEqualToString:@"name"]){
dataCurrent.nameLabel = currentList;
}
if ([elementName isEqualToString:@"description"]){
dataCurrent.descLabel = currentList;
}
if ([elementName isEqualToString:@"image"]) {
dataCurrent.imageLinkLabel = currentList;
}
if ([elementName isEqualToString:@"sub_name"]) {
dataCurrent.childNameLabel = currentList;
}
if ([elementName isEqualToString:@"sub_desc"]) {
dataCurrent.childDetailLabel = currentList;
}
if ([elementName isEqualToString:@"sub_image"]) {
dataCurrent.childImageLink = currentList;
}
if ([elementName isEqualToString:@"category"]) {
[_listPopulated addObject:dataCurrent];
dataCurrent = nil;
currentList = nil;
}
}

No comments:

Post a Comment