如何在不与新闻项目的标题元素发生冲突的情况下提取RSS频道的标题?使用NSXMLParser从RSS提要中提取频道标题
如果找到一个元素:
- (void)parser:(NSXMLParser *) parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict {
...
if ([elementName isEqualToString:@"channel") {
[currentChannel release];
currentChannel = nil;
currentChannel = [[NSMutableString alloc] init];
}
if ([elementName isEqualToString:@"item"]) {
...
}
}
如果发现结束标签:
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {
if ([elementName isEqualToString:@"channel") {
[channel setObject:currentChannelTitle forKey:@"title"];
}
if ([elementName isEqualToString:@"item"]) {
...
}
执行解析的东西:
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {
string = [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
if ([currentElement isEqualToString:@"title") {
[currentChannelTitle appendString:string forKey:@"title"];
}
if ([currentElement isEqualToString:@"title"]) {
[currentTitle appendString:string];
}
...
}
而在最后一部分我有问题。我有两个“标题”属性。一个用于“channel”元素,另一个用于它的子元素(“item”)。但我需要某种区别。但是如何?
我没有尝试过,但我认为使用一个标志可以工作。但目前我不明白它是如何支持两个不同的元素:频道和项目。但是该频道现在已经改变了格式,所以我无法尝试。感谢您的回答! – testing 2010-08-27 09:44:38