2015-06-18 2 views
0

У меня есть RSS-канал с изображением корма закодированного как это:Получить изображение из XML с помощью NSXMLParser

<imageItem src="http://www.example.com/picture.jpg"> 
<img width="386" height="173" src="http://www.abb-conversations.com/DACH/files/2015/06/Traumpraktikum-755-386x173.jpg" class="attachment-teaser-tablet wp-post-image" alt="Traumpraktikum-755" style="float:left; margin:0 15px 15px 0;"/> 
</imageItem> 

Использование NSXMLParser, я должен был быть в состоянии извлечь эту ссылку Src. В настоящее время, как я это делаю, ничего не возвращает, потому что он ищет что-то вроде <imageItem> xxx.jpg </imageItem>.

Вот код:

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

    if ([self.element isEqualToString:@"title"]) { 
    [self.title appendString:string]; 
    } 
    else if ([self.element isEqualToString:@"link"]) { 
    [self.link appendString:string]; 
    } 
    else if ([self.element isEqualToString:@"imageItem"]) { 

    [self.image appendString:string]; 

    } 
} 

ответ

1

Попробуйте этот метод делегата

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)nameSpaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict 
    { 
     if ([elementName isEqual:@"img"]) 
     { 
      NSLog(@"SRC: %@",[attributeDict objectForKey:@"src"]); 
     } 
    } 
1

URL-адрес изображения установлен как атрибут этого img элемента.

Вам необходимо реализовать следующее NSXMLParser делегата

-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict 
{   
    if([elementName isEqualToString:@"img"]) 
    { 
     NSString *urlValue = [attributeDict valueForKey:@"src"]; 
     NSLog(@"%@",urlValue); 
    } 
} 

Приведи NSXMLParserDelegate для более подробной информации

+0

Оба этих ответов работали, но другой человек не имеет какого-либо как можно больше очков, как вы, так что я чувствовал склонность указывать туда ответ, когда они приходили в то же время. Никаких жестких чувств! – spogebob92

+0

@ spogebob92: проблем нет. Счастливое кодирование! –