Xco*_*der 11 iphone objective-c cdata nsxmlparser
我正在使用NSXMLParser解析RSS提要,它对标题和其他字符串工作正常,但其中一个元素是一个类似的图像
<!CDATA <a href="http:image..etc>
Run Code Online (Sandbox Code Playgroud)
如何在表格视图中将其添加为我的单元格图像?我会将其定义为图像类型吗?
这就是我用来解析的方法:
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict{
//NSLog(@"found this element: %@", elementName);
currentElement = [elementName copy];
if ([elementName isEqualToString:@"item"]) {
// clear out our story item caches...
item = [[NSMutableDictionary alloc] init];
currentTitle = [[NSMutableString alloc] init];
currentDate = [ [NSMutableString alloc] init];
currentSummary = [[NSMutableString alloc] init];
currentLink = [[NSMutableString alloc] init];
}
Run Code Online (Sandbox Code Playgroud)
}
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName{
//NSLog(@"ended element: %@", elementName);
if ([elementName isEqualToString:@"item"]) {
// save values to an item, then store that item into the array...
[item setObject:currentTitle forKey:@"title"];
[item setObject:currentLink forKey:@"link"];
[item setObject:currentSummary forKey:@"description"];
[item setObject:currentDate forKey:@"date"];
[stories addObject:[item copy]];
NSLog(@"adding story: %@", currentTitle);
}
Run Code Online (Sandbox Code Playgroud)
}
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{
//NSLog(@"found characters: %@", string);
// save the characters for the current item...
if ([currentElement isEqualToString:@"title"]) {
[currentTitle appendString:string];
} else if ([currentElement isEqualToString:@"link"]) {
[currentLink appendString:string];
} else if ([currentElement isEqualToString:@"description"]) {
[currentSummary appendString:string];
} else if ([currentElement isEqualToString:@"pubDate"]) {
[currentDate appendString:string];
}
Run Code Online (Sandbox Code Playgroud)
}
小智 21
您可以使用
- (void)parser:(NSXMLParser *)parser foundCDATA:(NSData *)CDATABlock
{
NSString *someString = [[NSString alloc] initWithData:CDATABlock encoding:NSUTF8StringEncoding];
}
Run Code Online (Sandbox Code Playgroud)
CDATA 的要点是其中的任何内容都不被视为 XML 文档的一部分。因此,如果 CDATA 中有标签,解析器将忽略它们。
我猜这个 CDATA 位于描述元素中。因此,您需要手动或通过解析器的另一个实例从“描述”元素中提取标签。
| 归档时间: |
|
| 查看次数: |
10743 次 |
| 最近记录: |