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>

在上周发推文说她是肯德里克·拉马尔的粉丝之后。Lady Gaga 在芝加哥的 Pitchform 音乐节上与 Compton 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 回答