본문 바로가기
프로그래밍/iOS

XML 파싱을 쉽게 해주는 TBXML

by 백룡화검 2012. 2. 2.

XML  파싱할때 직관적으로 코딩할 수 있는 TBXML을 소개합니다.


아래는 예제파일에 포함된  소스코드 일부분입니다.  대략 이런식으로 코딩이 가능합니다. 참고하세요. ^^

// instantiate an array to hold author objects
authors = [[NSMutableArray alloc] initWithCapacity:10];
 
// Load and parse the books.xml file
tbxml = [[TBXML tbxmlWithXMLFile:@"books.xml"] retain];
 
// Obtain root element
TBXMLElement * root = tbxml.rootXMLElement;
 
// if root element is valid
if (root) {
    // search for the first author element within the root element's children
    TBXMLElement * author = [TBXML childElementNamed:@"author" parentElement:root];
    
    // if an author element was found
    while (author != nil) {
        
        // instantiate an author object
        Author * anAuthor = [[Author alloc] init];
        
        // get the name attribute from the author element
        anAuthor.name = [TBXML valueOfAttributeNamed:@"name" forElement:author];
        
        // search the author's child elements for a book element
        TBXMLElement * book = [TBXML childElementNamed:@"book" parentElement:author];
        
        // if a book element was found
        while (book != nil) {
            
            // instantiate a book object
            Book * aBook = [[Book alloc] init];
            
            // extract the title attribute from the book element
            aBook.title = [TBXML valueOfAttributeNamed:@"title" forElement:book];
 
            // extract the title attribute from the book element
            NSString * price = [TBXML valueOfAttributeNamed:@"price" forElement:book];
            
            // if we found a price
            if (price != nil) {
                // obtain the price from the book element
                aBook.price = [NSNumber numberWithFloat:[price floatValue]];
            }
            
            // find the description child element of the book element
            TBXMLElement * desc = [TBXML childElementNamed:@"description" parentElement:book];
            
            // if we found a description
            if (desc != nil) {
                // obtain the text from the description element
                aBook.description = [TBXML textForElement:desc];
            }
            
            // add the book object to the author's books array and release the resource
            [anAuthor.books addObject:aBook];
            [aBook release];
            
            // find the next sibling element named "book"
            book = [TBXML nextSiblingNamed:@"book" searchFromElement:book];
        }
        
        // add our author object to the authors array and release the resource
        [authors addObject:anAuthor];
        [anAuthor release];
        
        // find the next sibling element named "author"
        author = [TBXML nextSiblingNamed:@"author" searchFromElement:author];
    }          
}
 
// release resources
[tbxml release];

소스다운로드는 첨부파일 또는 아래링크를 참고하세요.


http://www.tbxml.co.uk/TBXML/TBXML_Free.html


출처 : http://www.iphonedev.co.kr/xe/sampleSource/33573

'프로그래밍 > iOS' 카테고리의 다른 글

커스텀 Action Sheet 사용하기  (0) 2012.02.04
아이폰 OS 개발 자료 총정리  (0) 2012.02.04
달력라이브러리 - TapkuLibrary  (0) 2012.02.01
달력 라이브러리 Tapku 사용법  (0) 2012.02.01
아이폰 Calendar Library  (0) 2012.02.01