TBXML解析器解析一个RSS源
问题描述:
我想解析这个源:http://missing.amberalertnederland.nl/nl/index.rss与TBXMLParser。为此目的,即时通讯使用此代码:TBXML解析器解析一个RSS源
- (void)loadRecords:(NSString *)records {
NSString *someXML = @"http://missing.amberalertnederland.nl/nl/index.rss";
TBXML *tbxml = [[TBXML tbxmlWithURL:[NSURL URLWithString:someXML]] retain];
records = [NSMutableArray array];
[records retain];
if (tbxml.rootXMLElement)
[self traverseElement:tbxml.rootXMLElement];
[tbxml release];
}
- (void) traverseElement:(TBXMLElement *)element {
do {
if (element->firstChild)
[self traverseElement:element->firstChild];
if ([[TBXML elementName:element] isEqualToString:@"item"]) {
TBXMLElement *title = [TBXML childElementNamed:@"title" parentElement:element];
TBXMLElement *link = [TBXML childElementNamed:@"link" parentElement:element];
TBXMLElement *description = [TBXML childElementNamed:@"description" parentElement:element];
[records addObject:[NSArray arrayWithObjects:
[TBXML textForElement:title],
[TBXML textForElement:link],
[TBXML textForElement:description],nil]];
}
} while ((element = element->nextSibling));
NSLog(@"%@", records);
}
但是,记录数组只返回(空)值。
任何有关如何使用TBXML(我认为我做得对)的指南也将受到欢迎。我从来没有使用TBXML
答
,我使用SMXMLDocument
这里是我使用的解析RSS的方法:
- (NSArray *) arrayNewsItemsFromDocument:(SMXMLDocument *)document {
SMXMLElement *channel = [document.root childNamed:@"channel"];
NSArray *itemArray = [channel childrenNamed:@"item"];
NSMutableArray *mutableArray = [[NSMutableArray alloc] initWithCapacity:[itemArray count]];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
//Mon, 11 Jul 2011 00:00:00 +0200
[dateFormatter setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"EN"] autorelease]];
[dateFormatter setDateFormat:@"EEE, d MMM yyyy HH:mm:ss ZZZZ"];
for (SMXMLElement *item in itemArray) {
News *news = [[News alloc] init];
news.title = [item childNamed:@"title"].value;
NSString *text = [item childNamed:@"encoded"].value;
news.text = [self stringFromHTMLString:text];
news.articleUrl = [item childNamed:@"link"].value;
NSString *dateString = [item childNamed:@"pubDate"].value;
NSDate *date = [dateFormatter dateFromString:dateString];
news.date = date;
[mutableArray addObject:news];
[news release], news = nil;
}
[dateFormatter release], dateFormatter = nil;
NSArray *newsArray = [[mutableArray copy] autorelease];
[mutableArray release], mutableArray = nil;
return newsArray;
}
+0
SMXMLDocument只是使用NSXMLParser,我想使用TBXMLParser。 – MaikelS
只考虑修改现有的问题。编辑完成后,它会再次出现在首页。 –