我正在使用 NSXMLParser 解析来自 RSS Feed 的数据。从 CDATA 块中,我还通过首先捕获图像 url 来提取图像。这就是我使用 nsxmlparser 的 CDATA 方法的方式:
- (void)parser:(NSXMLParser *)parser foundCDATA:(NSData *)CDATABlock {
NSString *someString = [[NSString alloc] initWithData:CDATABlock encoding:NSUTF8StringEncoding];
[currentString appendString:someString];
NSString *imageURLString = [self getFirstImageUrl:someString];
NSLog(@"IMAGE URL STRING %@", imageURLString);
}
这是我从上述方法中调用的方法:
-(NSString *)getFirstImageUrl: (NSString *) html {
NSScanner *theScanner;
NSString *imageURL = nil;
theScanner = [NSScanner scannerWithString: html];
// find start of tag
[theScanner scanUpToString: @"<img" intoString: NULL];
if ([theScanner isAtEnd] == NO) {
[theScanner scanUpToString: @"src=\"" intoString: NULL];
NSInteger newLoc2 = [theScanner scanLocation] + 5;
[theScanner setScanLocation: newLoc2];
// find end of tag
[theScanner scanUpToString: @"\"" intoString: &imageURL];
}
return imageURL;
}
正如你所看到的,一切都很干净而且简单。你可以看到下面的输出:
有什么办法让它不接收空值而只获取图像网址?