0

NSScanner を使用してタグから画像を取得しようとしていますが、タグに [CDATA] ブロックが含まれているため、NSXLM パーサーはそのタグ内のすべてを無視します。タグ内のデータを解析するにはどうすればよいですか。RSS フィードのサンプルとパーサー コードのサンプルを次に示します。

<item>
        <title>Kendrick Lamar &amp; Lady Gaga in Chi-Town</title>
        <link>http://www.motahiphop.com/rap-pix/36-rap-pix/2346-kendrick-lamar-lady-gaga-in-chi-town</link>
        <guid isPermaLink="true">http://www.motahiphop.com/rap-pix/36-rap-pix/2346-kendrick-lamar-lady-gaga-in-chi-town</guid>
        <description><![CDATA[<p style="text-align: center;"><img src="http://www.motahiphop.com/images/lady-gaga-kendrick-lamar.jpg" width="500" alt="Kendrick Lamar with Lady Gaga at Pitchfork festival" /></p>

彼女は先週ケンドリック・ラマーのファンだったとツイートした後。レディー・ガガは、シカゴのピッチフォーム ミュージック フェスティバルのバックステージでコンプトン MC に追いつきました。

]]> gqwebsites@gmail.com (スーパー ユーザー) 注目の Rap Pix Rap Pix Mon, 16 Jul 2012 13:18:45 -0400

パーサー コード スニペット:

if ([elementName isEqualToString:@"item"]) 
{
    elements[@"title"] = title;
    elements[@"date"] = date;
    elements[@"summary"] = summary;
    elements[@"link"] = link;
    elements[@"description"] = description;

    //NSLog(@"%@", description);

    [posts addObject:elements];
}
4

1 に答える 1

0

いくつかの調査の後、別の投稿で答えを見つけたので、この方法を使用しました

- (void)parser:(NSXMLParser *)parser foundCDATA:(NSData *)CDATABlock
{
    NSString *description = [[NSString alloc] initWithData:CDATABlock encoding:NSUTF8StringEncoding];
    NSString *storyImageURL = [self getFirstImageUrl:description];
    NSLog(@"%@",storyImageURL);

最後に NSLog を追加したので、結果を NSLog して、データがプルされていることを確認できます。魅力のように機能します

于 2012-10-04T19:53:09.707 に答える