IOS: OC - XML (Sax) 해석

3325 단어
1. 먼저 message. txt 문 서 를 작성 합 니 다. 내용 은 다음 과 같 습 니 다. 미녀 와 야수 가 보이 지 않 으 면 꽃 과 옥 처럼 아름 답 고 야수 가 라 라 라 라 라 라 라 라 라 라 라 라 라 라 라 라 라 라 라 라 라 라 라 라 라 라 라 라 라 라 라 라 라 라 일 즐거움 입 니 다.
 
        
        
        
 

2. Message. h 에서 속성 을 설명 합 니 다. / / model 에서 설정 한 속성 은 xml 에 있 는 태그 이름과 같 아야 합 니 다. @ interface Message: NSObject
@property(nonatomic,copy)NSString * receiver; @property(nonatomic,copy)NSString * content; @property(nonatomic,copy)NSString * sender;
3. Message. m 에 붕 괴 를 방지 하 는 방법 / 붕 괴 를 방지 하 는 방법 - (void) setValue: (id) value forUndefinedKey: (NSString *) key {
} 4. storyboard 에서 button 컨트롤 을 끌 고 관련 방법 5. ViewController. m < 1 > 속성 / / 해석 을 정의 할 때 배열 @ property (nonatomic, strong) NSMutableArray * dataArray 를 사용 해 야 합 니 다. /가 변 문자열 조합 을 정의 하려 면 @ property (nonatomic, strong) NSMutableString * appendString; <2 > 방법 에서 해석 시작

- (IBAction)saxParseForXML:(UIButton *)sender {
    /*
     sax  :
            
              
         XML   
                        
     */
    //1.         
   NSString * filepath =  [[NSBundle mainBundle]pathForResource:@"message.txt" ofType:nil ];
    //2.           
    NSData * fileData = [NSData dataWithContentsOfFile:filepath];
    //3:       
    NSXMLParser * parser = [[NSXMLParser alloc] initWithData:fileData];
    //4         
    parser.delegate = self;
    
    //5.        
    [parser parse];
    
    
  
}
//        
//4.1      :
-(void)parserDidStartDocument:(NSXMLParser *)parser{
    NSLog(@"    ");
    //       。      ,          
    self.dataArray  =[NSMutableArray array];
    }
//4.2      
-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict{

    NSLog(@"      ");
    //      
    if ([elementName isEqualToString:@"message"])  {
        //      
        Message * message = [Message new];
        //        
        [self.dataArray addObject:message];
    }

    //        ,    
    self.appendString = [NSMutableString string];
    
}

//4.3    
-(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{

    NSLog(@"      ");
    //         ,         ,      ,      
    [self.appendString appendString:string];
    

}
//4.4      
-(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName{

    NSLog(@"      ");
    //          ,  model  1
   Message * message =  [self.dataArray lastObject];
    //  KVC  key        model
    [message setValue:self.appendString forKey:elementName];
    //    ,          
    self.appendString = nil;
    

}
//4.5      
-(void)parserDidEndDocument:(NSXMLParser *)parser{
    NSLog(@"      ");
    //                 :
    [self.dataArray enumerateObjectsUsingBlock:^(id  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
        NSLog(@"%@,%@,%@",[obj receiver],[obj content],[obj sender]);
    }];
}
-(void)parser:(NSXMLParser *)parser parseErrorOccurred:(NSError *)parseError{

    NSLog(@"      %@",parseError);

}


```c

좋은 웹페이지 즐겨찾기