如何从xml获取图像?

我是iPhone的新手开发者。 我正在进行简单的xml解析演示。 我想要怎样才能获得xml代码后面的图像???

 Rain washes out England qualifier England's World Cup qualifier against Poland is postponed because of a waterlogged pitch and is rescheduled for 16:00 BST on Wednesday. http://www.bbc.co.uk/sport/0/football/19941036 http://www.bbc.co.uk/sport/0/football/19941036 Tue, 16 Oct 2012 21:18:26 GMT    

我怎么能得到图像?

我已经使用以下代码获得标题或描述。

 - (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName { if([elementName isEqualToString:className]) { [items addObject:item]; [item release]; item = nil; } else { if([currentNodeContent length] != 0) { if([className isEqualToString:@"item"]) { if([elementName isEqualToString:@"title"]|| [elementName isEqualToString:@"description"] || [elementName isEqualToString:@"url"]) { [item setValue:currentNodeContent forKey:currentNodeName]; if ([elementName isEqualToString:@"media:thumbnail"]) { [item setValue:currentNodeContent forKey:@"url"]; } } else { } } } else { } } [currentNodeContent release]; currentNodeContent = nil; [currentNodeName release]; currentNodeName = nil; } 

提前致谢。

你的xml在服务器上只有你的图像的url,所以在解析时将这个url保存在一个字符串中。 当您需要在屏幕上显示图像时,使用url获取图像

 NSData* imageData = [NSData dataWithContentsOfURL:[NSURL urlWithString:your_url]]; UIImage* image = [UIImage imageWithData:imageData]; 

要异步加载图像,Git Hub上有很多样本,使用asyncImage,它可以缓存最近下载的图像。

要从URL获取图像,请使用此方法返回图像

 UIImage * imageFromURL = [self getImageFromURL:imageurlstring]; -(UIImage *) getImageFromURL:(NSString *)fileURL { UIImage * result; NSData * data = [NSData dataWithContentsOfURL:[NSURL URLWithString:fileURL]]; result = [UIImage imageWithData:data]; return result; } 

要保存图像,请使用此方法

 [self saveImage:imageFromURL withFileName:[fileComponents objectAtIndex:0] ofType:[fileComponents objectAtIndex:1] inDirectory:documentsDirectoryPath]; -(void) saveImage:(UIImage *)image withFileName:(NSString *)imageName ofType:(NSString *)extension inDirectory:(NSString *)directoryPath { imageName = [imageName stringByReplacingOccurrencesOfString:@"%20" withString:@" "]; [UIImagePNGRepresentation(image) writeToFile:[directoryPath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.%@", imageName, extension]]options:NSAtomicWrite error:nil]; } 

您可以将.h文件中的imageLink声明为NSString。

 - (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict { if([elementName isEqualToString:@"media:thumbnail"]) { NSLog(@"attributes1: %@", attributeDict); imageLink = [attributeDict objectForKey:@"url"]; } } 

使用上面的代码,您可以获取图像URL,然后使用以下代码来显示图像。

 NSData* imageData = [NSData dataWithContentsOfURL:[NSURL urlWithString:imageLink]]; UIImage* image = [UIImage imageWithData:imageData];