NSXMLParser

from Cocoa&Touch 2009/07/02 11:46
<?xml version="1.0" encoding="UTF-8">
<article author="John Doe">
   <para>This is a very short article.</para>
</article>

이런 간단한 xml 데이터를 parser 의 delegate의 이벤트의 순서를 본다면..

1. 문서 파싱 시작
2. element (article) 을 시작태그 찾기
3. element(article) 의 attribute(author) 를 찾고, 값("John Doe") 를 구한다.
4. element(para)의 시작태그 찾기
5. characters 찾기 - This is a very short article.
6. element(para)의 끝태그 찾기
7. element(article)의 끝태그 찾기
8. 문서 파싱 종료
-------------------------------------------------------------------------------------------------------

.h
NSXMLParser *parser;
NSMutableString *currentAttribute;
NSMutableArray *xmlElementObjects;

@property (nonatomic, retain) NSXMLParser *parser;
@property (nonatomic, retain) NSMutableString *currentAttribute;
@property (nonatomic, retain) NSMutableArray *xmlElementObjects;
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

.m
@synthesize parser;
@synthesize currentAttribute;
@synthesize xmlElementObjects;

xmlElementObject = [[NSMutableArray alloc] init];

parser = [[NSXMLParser alloc] initWithContentsOfURL:[NSURL URLWithString:@"url~"]];
[parser setDelegate:self];
[parser parse];

delgate method
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
   if(![elementName compare:@"elementname"])
   {
    .......
   }
}

- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedNAme:(NSString *)qName
{
   if(![elementName compare:@"elementname"])
   {
   .......
   }
}

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
   ......
}
2009/07/02 11:46 2009/07/02 11:46
Tag // ,

댓글을 달아 주세요