Как получить доступ к изображениям при разборе XML?
В моем приложении IOS я пытаюсь получить доступ к изображениям из следующего файла XML, как я могу получить изображение в <description>
тег?
<channel>
<title>Gomolo Photo Gallery</title>
<link>http://www.gomolo.com/</link>
<description>Movie stills and Celebrity Wallpapers on Gomolo.com</description>
<language>en</language>
<lastBuildDate>6/4/2013 10:20:40 AM</lastBuildDate>
<image>
<url>http://img1.gomolo.com/images/logos/gomolo_M.jpg</url>
<title>Gomolo Photo Gallery</title>
<link>http://www.gomolo.com/</link>
</image>
<ttl>360</ttl>
<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/GomoloPhoto"></atom10:link>
<feedburner:info uri="gomolophoto"></feedburner:info>
<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/"></atom10:link>
<feedburner:emailServiceId>GomoloPhoto</feedburner:emailServiceId>
<feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname>
<item>
<guid isPermaLink="false">809390</guid>
<link>http://feedproxy.google.com/~r/GomoloPhoto/~3/dUyLtllEQUA/photos-rituparna-sengupta-at-the-first-look-launch-of-bengali-movie-a-political-murder</link>
<title></title>
<description>
Rituparna Sengupta at the first look launch of Bengali movie 'A Political Murder'</description>
<a10:updated>6/4/2013 9:55:00 AM</a10:updated>
<feedburner:origLink>http://www.gomolo.com/809390/photos-rituparna-sengupta-at-the-first-look-launch-of-bengali-movie-a-political-murder</feedburner:origLink>
</item>
<item>
<guid isPermaLink="false">809483</guid>
<link>http://feedproxy.google.com/~r/GomoloPhoto/~3/arNMUvINuok/photos-will-smith-jaden-smith-bruce-willis-at-the-premiere-of-hollywood-movie-after-earth</link>
<title></title>
<description>
Will Smith, Jaden Smith & Bruce Willis at the premiere of Hollywood movie 'After Earth'</description>
<a10:updated>6/4/2013 9:53:00 AM</a10:updated>
<feedburner:origLink>http://www.gomolo.com/809483/photos-will-smith-jaden-smith-bruce-willis-at-the-premiere-of-hollywood-movie-after-earth</feedburner:origLink>
</item>
я пытаюсь это
NSMutableData *data=[[NSMutableData alloc]initWithContentsOfURL:[NSURL URLWithString:@"http://feeds.feedburner.com/GomoloPhoto"]];
GDataXMLDocument *doc=[[GDataXMLDocument alloc]initWithData:data options:0 error:nil];
//specify path
NSArray *links=[doc nodesForXPath:@"//channel/item/description" error:nil];
//load xml data
for (GDataXMLElement *link in links ) {
NSURL *url=[NSURL URLWithString: link.stringValue];
[array addObject:url];
}
NSLog(@"array %@",[array objectAtIndex:0]);
NSData *data1=[NSData dataWithContentsOfURL:[array objectAtIndex:0]];
_hotPicsImageView1.image=[UIImage imageWithData:data1];
NSData *data2=[NSData dataWithContentsOfURL:[array objectAtIndex:1]];
_hotPicsImageView2.image=[UIImage imageWithData:data2];
NSData *data3=[NSData dataWithContentsOfURL:[array objectAtIndex:2]];
_hotPicsImageView3.image=[UIImage imageWithData:data3];
но по какой-то причине изображение изменится на пустое от моего изображения по умолчанию, если вы проверите <description>
тег, который вы найдете, содержит изображение и текст. как я могу получить доступ к файлу изображения? Кто-нибудь может предложить мне правильный способ сделать это?
пожалуйста, проверьте этот URL в любой онлайн-программе просмотра XML
2 ответа
Отличный инструмент для тестирования XPath http://www.xpathtester.com/
вы ссылку
может быть, это вам поможет - проанализируйте тег , который находится внутри
NSMutableData *data=[[NSMutableData alloc]initWithContentsOfURL:[NSURL URLWithString:@"http://feeds.feedburner.com/GomoloPhoto"]];
GDataXMLDocument *doc=[[GDataXMLDocument alloc]initWithData:data options:0 error:nil];
//specify path
NSArray *links=[doc nodesForXPath:@"//channel/item/description" error:nil];
NSMutableArray *array = [NSMutableArray array];
//load xml data
for (GDataXMLElement *link in links ) {
NSString *descWithLink = [link stringValue];
NSMutableArray *substrings = [NSMutableArray array];
NSScanner *scanner = [NSScanner scannerWithString:descWithLink];
[scanner scanUpToString:@"src=" intoString:nil];
while(![scanner isAtEnd]) {
NSString *substring = nil;
[scanner scanString:@"src" intoString:nil];
if([scanner scanUpToString:@"\" " intoString:&substring]) {
[substrings addObject:[substring substringFromIndex:2]];
}
[scanner scanUpToString:@"src=" intoString:nil];
}
NSURL *url=[NSURL URLWithString: substrings[0]];
[array addObject:url];
}
NSLog(@"array %@",[array objectAtIndex:0]);
URL изображения находится в image->ulr
тег
<image>
<url>http://img1.gomolo.com/images/logos/gomolo_M.jpg</url>
не в <discription>
тег
РЕДАКТИРОВАТЬ: В xml, которым вы поделились, нет действительного URL изображения