在 RSS 源中找不到缩略图元素



我正在做一个测试,我正在构建一个新闻提要iOS应用程序,使用像这样的rss提要:http://www.20minutos.es/iphoneapp/feeds/home/

我快完成了,但我找不到缩略图的链接。我正在像这样进行解析,我可以找到一些外壳、附件 2x、缩略图、缩略图 2x,但它们都是空字符串:

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict {
    element = elementName;
    if ([element isEqualToString:@"item"]) {
        item = [[NSMutableDictionary alloc] init];
        title = [[NSMutableString alloc] init];
        link = [[NSMutableString alloc] init];
        image = [[NSMutableString alloc] init];
        image2x = [[NSMutableString alloc] init];
        comments = [[NSMutableString alloc] init];
    }
}
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {
    if ([elementName isEqualToString:@"item"]) {
        [item setObject:title forKey:@"title"];
        [item setObject:link forKey:@"link"];
        [item setObject:image forKey:@"image"];
        [item setObject:image2x forKey:@"image2x"];
        [item setObject:comments forKey:@"comments"];
        [feeds addObject:[item copy]];
    }
}
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {
    if ([element isEqualToString:@"title"]) {
        [title appendString:string];
    } else if ([element isEqualToString:@"link"]) {
        [link appendString:string];
    } else if ([element isEqualToString:@"veinteminutos:numComments"]) {
        [comments appendString:[string stringByReplacingOccurrencesOfString:@" " withString:@""]];
    }
    //NSLog(@"string: %@ nelement: %@ nnn", string, element);
}

这是我第一次解析 rss 提要,所以我真的不知道在那里寻找什么。

谢谢

您应该解析出parser:didStartElement:namespaceURI:qualifiedName:attributes:委托方法中的media:thumbnailmedia:thumbnail2x节点,并从attributeDict字典中提取缩略图 URL:

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict {
    element = elementName;
    if ([element isEqualToString:@"item"]) {
        item = [[NSMutableDictionary alloc] init];
        title = [[NSMutableString alloc] init];
        link = [[NSMutableString alloc] init];
        image = [[NSMutableString alloc] init];
        image2x = [[NSMutableString alloc] init];
        comments = [[NSMutableString alloc] init];
    } else if ([element isEqualToString:@"media:thumbnail"]) {
        image = [attributeDict objectForKey:@"url"];
    } else if ([element isEqualToString:@"media:thumbnail2x"]) {
        image2x = [attributeDict objectForKey:@"url"];
    }
}

如果需要,您可以对存储模块执行相同的操作。

最新更新