神仙客

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::
很多第三方插件很好用(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 }  

 

posted on 2012-04-24 10:01  神仙客  阅读(361)  评论(0)    收藏  举报