2012-08-26 3 views
0

XML 데이터 (XML 데이터 읽기 및 sqlite 데이터 읽기 .... 삽입)를 처리 한 후 다음보기로 이동하고 싶습니다.XML 파싱이 끝났는지 확인하는 방법

XML 구문 분석이 완료되었는지 어떻게 확인할 수 있습니까?

내 코드를 첨부합니다. 구문 분석이 완료되었는지 어디에서 확인할 수 있습니까?

-(IBAction)clickServerSync:(id)sender 
{ 
    if ([util checkNetwork]) {     
     [self LoadXml:@"LANG"]; 
     [self LoadXml:@"CATEGORY"]; 
     [self LoadXml:@"LIST"]; 
     [self LoadXml:@"FILE"];   
    } 
} 

-(void)LoadXml:(NSString*)P_VAL 
{  
    [indicator setHidden:NO];  
    NSString *smsURL = [NSString stringWithFormat:@"%@%@.asp", XML_URL, P_VAL]; 

    NSString *sendAuthInfo = [NSString stringWithFormat:@"xx=%d" , 0 ];  
    NSString *val = [sendAuthInfo stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 

    NSMutableURLRequest *request = [[[NSMutableURLRequest alloc]initWithURL:[NSURL URLWithString:smsURL]]autorelease];  
    [request setURL:[NSURL URLWithString:smsURL]]; 
    [request setHTTPMethod:@"POST"]; 
    [request setHTTPBody: [val dataUsingEncoding:NSUTF8StringEncoding]]; 

    [self startAsyncLoad:request tag:P_VAL]; 
} 
- (void)startAsyncLoad:(NSMutableURLRequest*)request tag:(NSString*)tag {  
    CustomURLConnection *connection = [[CustomURLConnection alloc] initWithRequest:request delegate:self startImmediately:YES tag:tag];  
    if (connection) {   
     [receivedData setObject:[[NSMutableData data] retain] forKey:connection.tag];   
    }  
} 

- (NSMutableData*)dataForConnection:(CustomURLConnection*)connection {  
    NSMutableData *data = [receivedData objectForKey:connection.tag];  
    return data; 
} 

-(void)check_xmlParserEnd 
{ 
    [indicator setHidden:YES];  
} 


- (void)connection:(CustomURLConnection *)connection didReceiveResponse:(NSURLResponse *)response { 

    NSMutableData *dataForConnection = [self dataForConnection:(CustomURLConnection*)connection]; 
    [dataForConnection setLength:0]; 
} 

- (void)connection:(CustomURLConnection *)connection didReceiveData:(NSData *)data { 

    NSMutableData *dataForConnection = [self dataForConnection:(CustomURLConnection*)connection]; 
    [dataForConnection appendData:data]; 

} 

-(void)connectionDidFinishLoading:(CustomURLConnection*)connection 
{ 
    NSMutableData *dataForConnection = [self dataForConnection:(CustomURLConnection*)connection]; 
    [connection release]; 
    [UIApplication sharedApplication].networkActivityIndicatorVisible = NO; 
    NSXMLParser *xmlParser = [[[NSXMLParser alloc] initWithData:dataForConnection] autorelease]; 

    XMLParser *parser = [[XMLParser alloc] initXMLParser]; 
    [xmlParser setDelegate:(id)parser]; 
    parser.viewDelegate = (id)self; 
    [xmlParser parse ]; 

} 

답변

2

NSXMLParser는 동기 파서이다. [xmlParser parse]이 반환 되 자마자 구문 분석이 수행됩니다.

0

NSXMLParser를 사용하고 delegate를 self로 설정 했으므로 클래스가 NSXMLParserDelegate 메서드를 구현해야하며 모두 완료되면 "-parserDidEndDocument :"가 호출됩니다.

관련 문제