Hello I am parsing a RSS And Atom feeds, and my question is how can I check for < img > and < url > tags in < description >?
There must be some sort of check. Thanks.
Here is how I parse them:
- (NSArray *)parseFeed:(NSURL *)feedURL{ NSError *error; NSData *data = [NSData dataWithContentsOfURL:feedURL]; GDataXMLDocument *xmlParse = [[GDataXMLDocument alloc] initWithData:data error:&error]; GDataXMLElement *rootElement = xmlParse.rootElement; NSArray *array = [[NSArray alloc] init]; if ([rootElement.name compare:@"rss"] == NSOrderedSame) { array = [self parseRSSFeed:rootElement]; return array; } else if ([rootElement.name compare:@"feed"] == NSOrderedSame) { array = [self parseAtomFeed:rootElement]; return array; } else { NSLog(@"Unsupported root element: %@", rootElement.name); return nil; }}-(NSArray *)parseRSSFeed:(GDataXMLElement *) rootElement{ NSMutableArray *entries = [[NSMutableArray alloc] init]; NSArray *channels = [rootElement elementsForName:@"channel"]; for (GDataXMLElement *channel in channels) { NSArray *items = [channel elementsForName:@"item"]; for (GDataXMLElement *item in items) { FeedItem *itemF = [[FeedItem alloc] init]; itemF.title = [item valueForChild:@"title"]; itemF.description = [item valueForChild:@"description"]; NSLog(@"IMAGE - %@", [item valueForChild:@"img"]); itemF.dateString = [item valueForChild:@"pubDate"]; itemF.link = [NSURL URLWithString:[item valueForChild:@"link"]]; itemF.dateString = [item valueForChild:@"updated"]; itemF.author = [item valueForChild:@"author"]; [entries addObject:itemF]; NSLog(@"RSS - %@", itemF.title); } } NSArray *RSSArray = [entries copy]; return RSSArray;}-(NSArray *)parseAtomFeed:(GDataXMLElement *) rootElement{ NSMutableArray *entries = [[NSMutableArray alloc] init]; NSArray *entry = [rootElement elementsForName:@"entry"]; for (GDataXMLElement *entryElement in entry) { // NSArray *items = [channel elementsForName:@"item"]; //for (GDataXMLElement *item in items) { FeedItem *itemF = [[FeedItem alloc] init]; itemF.title = [entryElement valueForChild:@"title"]; itemF.description = [entryElement valueForChild:@"summary"]; NSArray *links = [entryElement elementsForName:@"link"]; for (GDataXMLElement *link in links) { itemF.link = [NSURL URLWithString:[[link attributeForName:@"href"] stringValue]]; } itemF.dateString = [entryElement valueForChild:@"updated"]; NSArray *authors = [entryElement elementsForName:@"author"]; for (GDataXMLElement *authorElement in authors) { itemF.author = [authorElement valueForChild:@"name"]; } [entries addObject:itemF]; NSLog(@"Atom - %@", itemF.title); } NSArray *atomArray = [entries copy]; return atomArray;}
I am parsing them using GDataXMLParser, and my own parser class.