XML 파싱을 위해서는 NSXMLParserDelegate를 구현해야 한다.
헤더 파일에 아래와 같이 <NSXMLParserDelegate>를 추가 한다.
@interface AlumnusViewController : UIViewController <UITableViewDataSource, UITableViewDelegate, NSXMLParserDelegate>
그리고 NSXMLParserDelegate 함수를 구현 한다.
#pragma mark XMLParse delegate methods
.....
[_xmlValue setString:@""];
}
return;
[boardData setValue:[NSString stringWithString:_xmlValue] forKey:elementName];
}
//위와 같은 방법으로 엘리먼트 문자열을 비교하여 boardData와 같은 파싱에 결과가 되는
//NSMutableDictionary 에 값을 설정 한다.
}
//파서에 들어오는 string을 NSMutableString *_xmlValue에 추가하는 작업을 한다.
if (elementType == kBOARDXML) {
if (!_xmlValue) {
_xmlValue = [[NSMutableString alloc]initWithCapacity:0];
}
[_xmlValue appendString:string];
}
}
통신에 결과로 XML데이터를 수신 하였을 경우
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
NSXMLParser* parser = [[[NSXMLParser alloc] initWithData:receiveData] autorelease];
[parser setDelegate:self];
[boardData removeAllObjects];
[boardParseData removeAllObjects];
BOOL success = [parser parse];
if (success) {
NSLog(@"XML parse success");
//테이블 뷰 작업....
//파싱에 결과로 생성된 baoradData, boardParseData의 키 밸류를 적절히 활용한다.
}else {
NSLog(@"XML parse ERROR");
}
connectionDidFinishLoading 메서드에서 receiveData를 parser로 할당 하고
[parser parse] 메세지가 성공하면 xml 파싱이 성공한 것이다.
success 가 YES일때 파싱 성공에 의해 생성된 NSMutableDictionary 객체 boardData, boardParseData 를 이용한다.
이상 간단하게 XML파서를 이용하는 방법이다.
댓글 없음:
댓글 쓰기