I am an starting in anroid development, in one of my previous iOS app I parse some xml using Hpple, if any of you are familiar with this. Here is what I do:
-(void)parseXML:(NSData *)menuData {
TFHpple *Parser = [TFHpple hppleWithHTMLData:menuData];
NSString *XpathQueryString = @"//day";
NSArray *Nodes = [Parser searchWithXPathQuery:XpathQueryString];
for (TFHppleElement *element in Nodes) {
NSString *dayString=element.attributes[@"name"];
MealDay day=[MealData deliDayForString:dayString];
if (day != MealDayUnknown) {
NSMutableDictionary *dayDict=(NSMutableDictionary *)self.menuData[day];
NSMutableArray *dayMeals=self.dayMeals[day];
NSArray *mealsArray=[element childrenWithTagName:@"meal"];
for (TFHppleElement *mealElement in mealsArray) {
NSString *mealName=mealElement.attributes[@"name"];
[dayMeals addObject:mealName];
NSMutableDictionary *counterDict=(NSMutableDictionary *)dayDict[mealName];
if (counterDict == nil) {
counterDict=[NSMutableDictionary new];
dayDict[mealName]=counterDict;
}
NSArray *countersArray=[mealElement childrenWithTagName:@"counter"];
for (TFHppleElement *counterElement in countersArray) {
NSString *counterName=counterElement.attributes[@"name"];
if (counterName != nil) {
NSMutableArray *itemsArray=(NSMutableArray *)counterDict[counterName];
if (itemsArray == nil) {
itemsArray=[NSMutableArray new];
counterDict[counterName]=itemsArray;
}
NSArray *dishArray=[counterElement childrenWithTagName:@"dish"];
for (TFHppleElement *dishElement in dishArray) {
Items *newItem=[Items new];
TFHppleElement *dishNameElement=[dishElement firstChildWithTagName:@"name"];
NSString *text=[[dishNameElement firstTextChild].content stringByReplacingOccurrencesOfString:@"\n" withString:@""];
newItem.title=text;
TFHppleElement *dishUrlElement=[dishElement firstChildWithTagName:@"url"];
text=[[dishUrlElement firstTextChild].content stringByReplacingOccurrencesOfString:@"\n" withString:@""];
newItem.url=text;
[itemsArray addObject:newItem];
}
}
}
}
}
else {
NSLog(@"Invalid day name %@",dayString);
}
}
}
I was wondering if wether DOM or Pull parser would be best to do something similar to this in android...
Thanks for the help
No comments:
Post a Comment