很多第三方插件很好用(KissXML等),刚开始不知道,这么老老实实使用NSXMLParser进行解析,直接项目中复制过来,懒,没整理。
1 NSData *myXmlData=[resultStr dataUsingEncoding:NSUTF8StringEncoding]; 2 NSXMLParser *parser = [[NSXMLParser alloc] initWithData:myXmlData]; 3 [parser setDelegate:self]; 4 [parser setShouldProcessNamespaces:NO]; 5 [parser setShouldReportNamespacePrefixes:NO]; 6 [parser setShouldResolveExternalEntities:NO]; 7 [parser parse]; 8 9 10
- (void)parserDidStartDocument:(NSXMLParser *)parser {
NSLog(@"开始处理");
}
- (void)parser:(NSXMLParser *)parser parseErrorOccurred:(NSError *)parseError {
NSLog(@"出错,错误代码: %i", [parseError code]);
}
11 //发现元素开始符的处理函数 12 - (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict 13 { 14 15 //保存当前元素名 16 if ([elementName isEqualToString:@"TypeId"]) { 17 self.currentElement=elementName; 18 } 19 //保存当前元素名 20 if ([elementName isEqualToString:@"TypeName"]) { 21 self.currentElement=elementName; 22 } 23 //保存当前元素名 24 if ([elementName isEqualToString:@"id"]) { 25 self.currentElement=elementName; 26 } 27 //保存当前元素名 28 if ([elementName isEqualToString:@"title"]) { 29 self.currentElement=elementName; 30 } 31 //保存当前元素名 32 if ([elementName isEqualToString:@"count"]) { 33 self.currentElement=elementName; 34 } 35 36 } 37 38 //发现元素结束符的处理函数,保存元素各项目数据 39 - (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName 40 { 41 42 //NSLog(@"ended element: %@", elementName); 43 44 if ([elementName isEqualToString:@"TypeId"]) { 45 46 } 47 } 48 49 //处理标签包含内容字符 50 - (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string 51 { 52 53 NSMutableString *currentString = [[NSMutableString alloc] initWithString:string]; 54 [currentString setString:[currentString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]]; 55 56 if ([self.currentElement isEqualToString:@"TypeId"]) { 57 [self.idArray addObject:currentString]; 58 self.currentElement=nil; 59 } 60 61 if ([self.currentElement isEqualToString:@"TypeName"]) { 62 [self.dataArray addObject:currentString]; 63 self.currentElement=nil; 64 } 65 66 if ([self.currentElement isEqualToString:@"id"]) { 67 [self.newId addObject:currentString]; 68 self.currentElement=nil; 69 } 70 71 if ([self.currentElement isEqualToString:@"title"]) { 72 [self.newTitle addObject:currentString]; 73 self.currentElement=nil; 74 } 75 76 if ([self.currentElement isEqualToString:@"count"]) { 77 [self.newCount addObject:currentString]; 78 self.currentElement=nil; 79 } 80 81 [currentString release]; 82 } 83 84 - (void)parserDidEndDocument:(NSXMLParser *)parser { 85 86 //终结 87 [parser release]; 88 }

浙公网安备 33010602011771号