2012-07-01 1 views
0

실습 RESTKit을 시작하므로 REST의 중단을 얻으려고 Dribble 클라이언트를 만들고 있는데 XML 응답을 성공적으로 받지만 NSXMLParser를 사용하여 구문 분석을 시작하면 바로 그 다음에 멈추거나, 어떻게 고칠 수 있습니까? 아니면 XML을 사용하여 어떤 항목이 어떤 것인지를 쉽게 분류하여 내 표에 넣으십시오.NSXMLParser는

을 heres 코드 :

-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict { 
    NSLog(@"I just found a start tag for %@",elementName); 

} 

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{ 
    NSLog(@"the parser just found this text in a tag:%@",string); 
} 

-(void)parserDidStartDocument:(NSXMLParser *)parser { 
    NSLog(@"starting"); 
} 

-(void)parserDidEndDocument:(NSXMLParser *)parser { 
    NSLog(@"end"); 
} 

-(IBAction)test { 
    [[RKClient sharedClient] get:@"/shots/popular" delegate:self]; 
} 

-(void)request:(RKRequest *)request didLoadResponse:(RKResponse *)response { 
    if ([request isGET]) { 

     NSLog(@"Retrieved XML: %@", [response bodyAsString]); 
     NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithData:[response body]]; 
     [xmlParser setDelegate:self]; 
     [xmlParser parse]; 
    } 
    else if ([request isPOST]) { 


     if ([response isJSON]) { 

      NSLog(@"Got a JSON response back from our POST!"); 
     } 


    } 
    else if ([request isDELETE]) { 

     if ([response isNotFound]) { 
      NSLog(@"The resource path '%@' was not found.", [request resourcePath]); 
     } 


    } 
} 
+0

들으 로요 ... 오류가있을 수 있습니다. 당신은'parser : parseErrorOccurred :'를 구현하고 그것이 무엇을 말하는지를보아야한다. –

+0

NSLogged, "오류가 발생했습니다 : 오류 도메인 = NSXMLParserErrorDomain 코드 = 4"작업을 완료 할 수 없습니다. (NSXMLParserErrorDomain error 4) "", 어떻게 해결합니까, NSXMLParser에 대해 많이 알지 못합니다. 코드에서 – Maximilian

답변

0

당신이 파서에서지고있어 오류가 NSXMLParserEmptyDocumentError입니다. 서버에서 기대하는 응답을 얻지 못하고있는 것 같습니다. 이것은 파서에 문제가되지 않습니다.

연결 또는 응답에 오류가 발생하지 않고 결과가 실제로 XML 문서인지 확인해야합니다.

+0

, 로그, NSLog (@ "검색된 XML : % @", [response bodyAsString]); 그리고 XML을 가지고 있고 필요한 정보를 보았습니다. 그래서 본문과 함께 NSXMLParser를 사용하고 본문은 문자열이 아닌 문자열과 같은 데이터 여야합니다. NSXMLParser * xmlParser = [[NSXMLParser alloc] initWithData : [응답 본문]] bodyAsString이 null이 아니므로 본문이 비어 있지 않아야합니까? – Maximilian