使用NSXMLParser从XML检索图像

时间:2015-06-18 08:49:31

标签: ios objective-c xml string nsxmlparser

我有一个RSS源,其源代码的图像编码如下:

<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];

  }
}

2 个答案:

答案 0 :(得分: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 :(得分:1)

图片网址设置为该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