当我实现解析器didStartElement委托方法与didEndElement委托方法时,我不完全得到。我的代码设法从正在使用的URL中提取我想要的内容(标题),但我不知道是否应该实现我的代码并使用didStartElement委托方法来处理我得到的数据。
#import "ClassB.h"
@implementation ClassB
-(id)loadHTMLWithURL:(NSString *)urlString {
NSURL *url = [NSURL URLWithString:urlString];
NSData *data = [[NSData alloc]initWithContentsOfURL:url];
self.nodeContent = [[NSMutableString alloc]init];
self.elementArray = [[NSMutableArray alloc]init];
self.parse = [[NSXMLParser alloc]initWithData:data];
self.parse.delegate = self;
self.classA = [ClassA new];
[self.parse parse];
return self;
}
//-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict {
//
// if ([elementName isEqualToString:@"title"]) {
// self.classA.tag = elementName;
// self.classA.value = self.nodeContent;
// }
//
//
//}
//
//
-(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {
if ([elementName isEqualToString:@"title"]) {
self.classA.tag = elementName;
self.classA.value = self.nodeContent;
[self.elementArray addObject:self.classA];
}
}
-(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {
self.nodeContent = (NSMutableString *)[string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
}
@end
ClassA只是一个单独的类,我用来存储标记字符串(标题,这是我正在寻找的)和该标记的值。