我有一个实现 NSXMLParser 方法并解析 XML 文档的类。由于类将用于解析几个 xml 文档,因此传递给我的类的键会改变。
当我解析文档时,我正在检查 didStartElement 和 didEndElement 是否匹配我的键,然后在 foundCharacters 中将字符串保存到 NSDictionary。NSDictionary 将通过选择器返回给我的委托。
问题在于 foundCharacters 方法,正在保存的字符串是文档中的部分字符串。
我在想的是为每个键和 foundCharacters 创建一个 NSString,将字符串附加到为该键动态创建的字符串。
这是我的数组。
NSArray *items = [NSArray arrayWithObjects:@"id", @"time", @"newtime", @"title", @"html", @"image", @"url", nil];
使用以下方法将其传递到我的解析器中。
-(void) parseArticles:(NSString *)url keys:(NSArray *)findKeys containingString:(NSString *)containing withDelegate:(id)aDelegate {
keys = findKeys;
[self setDelegate:aDelegate];
responseData = [NSMutableData data];
NSURL *baseUrl = [NSURL URLWithString:url];
NSLog(@"Loading URL: %@", url);
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
NSURLRequest *request = [NSURLRequest requestWithURL:baseUrl];
(void)[[NSURLConnection alloc] initWithRequest:request delegate:self];
}
这是我的 foundCharacters 方法
-(void) parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {
for(NSString *toFind in keys){
if([currentItem isEqualToString:toFind]) [item setObject:string forKey:toFind];
}
}