Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 从RSS数据获取图像url_Objective C_Image_Get_Rss - Fatal编程技术网

Objective c 从RSS数据获取图像url

Objective c 从RSS数据获取图像url,objective-c,image,get,rss,Objective C,Image,Get,Rss,我有一个RSS解析项目,它是我的RSS url 我正在使用NSXMLParser方法进行解析 - (void)rssParseStart{ NSURL *url = [NSURL URLWithString:@"http://vimeo.com/udhdhmi/videos/rss"]; parser = [[NSXMLParser alloc] initWithContentsOfURL:url]; [parser setDelegate:self]; [

我有一个RSS解析项目,它是我的RSS url

我正在使用NSXMLParser方法进行解析

- (void)rssParseStart{

    NSURL *url = [NSURL URLWithString:@"http://vimeo.com/udhdhmi/videos/rss"];
    parser = [[NSXMLParser alloc] initWithContentsOfURL:url];

    [parser setDelegate:self];
    [parser setShouldResolveExternalEntities:NO];
    [parser parse];
}

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict{

    element = elementName;
    if ([element isEqualToString:@"item"]) {
        model = [[VideoModel alloc]init];
    }
}

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{

    if ([element isEqualToString:@"title"]) {
        [model.videoTitle appendString:string];
    }
    if ([element isEqualToString:@"pubDate"]) {
        [model.videoPubDate appendString:string];
    }
    if ([element isEqualToString:@"link"]) {
        [model.videoLink appendString:string];
    }
    if ([element isEqualToString:@"description"]) {
        [model.videoDescription appendString:string];
    }

}
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName{

    if ([elementName isEqualToString:@"item"]) {

        [feeds addObject:model];
    }
}
- (void)parserDidEndDocument:(NSXMLParser *)parser{

    [self.tableView reloadData];
}
到目前为止没有问题,但是从“Description”标签中获得的数据; -榜样

<p><a href="http://vimeo.com/107905906"><img src="http://i.vimeocdn.com/video/491445051_200x150.jpg" alt="" /></a></p><p><p class="first"></p></p><p><strong>Cast:</strong> <a href="http://vimeo.com/udhdhmi">DHMI</a></p><p><strong>Tags:</strong> </p>

演员阵容:标签:

我只需要来自该数据的图像url地址。
感谢您的关注。

您可以通过修剪从xml解析器获得的字符串值,从该数据中获取url

// it is assumed that 'string' variable holds your current data
NSRange range;
int index;

range = [string rangeOfString:@"img src=\""];
index = range.location + range.length;

NSString* trimmedString = [string substringFromIndex:index];

range = [trimmedString rangeOfString:@"\""];
index = range.location + range.length - 1;

NSString* finalValue = [trimmedString substringToIndex:index];
finalValue将url存储为字符串

解决方案:

- (void)rssParseStart{
    self.progressBar = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
    self.progressBar.labelText = @"Lütfen bekleyiniz...";

    NSURL *url = [NSURL URLWithString:@"http://vimeo.com/udhdhmi/videos/rss"];
    parser = [[NSXMLParser alloc] initWithContentsOfURL:url];

    [parser setDelegate:self];
    [parser parse];
}

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict{

    element = elementName;

    if ([element isEqualToString:@"item"]) {
        model = [[VideoModel alloc]init];
    }
    if ([element isEqual:@"media:thumbnail"]) {
        NSString *imageURLString = [attributeDict objectForKey:@"url"];
        [model.videoDescription appendString:imageURLString];
    }
}

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{

    if ([element isEqualToString:@"title"]) {
        [model.videoTitle appendString:string];
    }
    if ([element isEqualToString:@"pubDate"]) {
        [model.videoPubDate appendString:string];
    }
    if ([element isEqualToString:@"link"]) {
        [model.videoLink appendString:string];
    }

}
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName{

    if ([elementName isEqualToString:@"item"]) {

        [feeds addObject:model];
    }
}
- (void)parserDidEndDocument:(NSXMLParser *)parser{

    [self.tableView reloadData];
    [MBProgressHUD hideHUDForView:self.view animated:YES];
}