Quantcast
Channel: Parsing RSS feed - retrieve images, urls? - Stack Overflow
Viewing all articles
Browse latest Browse all 3

Parsing RSS feed - retrieve images, urls?

$
0
0

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.


Viewing all articles
Browse latest Browse all 3

Latest Images

Trending Articles





Latest Images