0

次のようなRSSフィードを使用して、ニュースフィードiOSアプリを構築しているテストを行っています: 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: %@ \n\n\n", string, element);

}

RSS フィードを解析するのは初めてなので、そこで何を探すべきかよくわかりません。

ありがとう

4

1 に答える 1

1

media:thumbnailデリゲート メソッドでノードとmedia:thumbnail2xノードを解析し、辞書parser:didStartElement:namespaceURI:qualifiedName:attributes:からサムネイル URL を抽出する必要があります。attributeDict

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

エンクロージャーが必要な場合は、エンクロージャーについても同じことができます。

于 2013-10-24T11:19:15.247 に答える