使用 NSXMLParser 从 XML 检索图像

Retrieve image from XML using 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 link。目前我这样做的方式没有 return 任何东西,因为它正在寻找类似 <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];

  }
}

试试这个委托方法

- (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"]);
        }
    }

图像 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了解更多详情