IOS用TBXML 解析XML

TBXML下載地址: https://github.com/71squared/TBXML

這是我解析的XML(setting.xml),做個備忘

<root>

<setting>

<title>EventOn</title>

<layout>tile</title>

<headerStyle>Banner</headerStyle>

<color>顏色值</color>

<date>2013-02-13</date>

<location>位置</location>

</setting>

<!--  主菜單  -->

<module id="mainmenu" title="首頁sdfsdfsd" icon="custom_icon.png">

<item title="地圖ssfdafs" icon="close" target="EOMapViewController"/>

<item title="標題2" icon="close" target="ItemViewController"/>

<item title="標題3" icon="itemImage" target="ItemViewController"/>

</module>

<module id="map" title="地圖" locationName="豪成大廈3A02" latitude="" longitude="">

</module>

</root>



TBXML.h TBXML.m
放到工程裏就OK了

#import "TBXML.h"

@interface XXXClass : NSObject <NSXMLParserDelegate>


加入委託代理NSXMLParserDelegate


加載setting.xml

    NSError *error;

    TBXML *tbxml = [TBXML newTBXMLWithXMLFile:@"setting.xml" error:&error];

    TBXMLElement *rootElement = tbxml.rootXMLElement;

    if (error) {

        NSLog(@"%@ %@", [error localizedDescription], [error userInfo]);

    } else {

        TBXMLElement *element = [TBXML childElementNamed:@"module" parentElement:rootElement];

        [self dealMoudle:element];

    }


解析module結點信息


- (void) dealMoudle:(TBXMLElement *)element{

    do{

        NSString *value = [TBXML valueOfAttributeNamed:@"id" forElement:element];

        if([value isEqualToString:@"mainmenu"]){

            [self dealMainMenuMoudle:element];

        }

        if([value isEqualToString:@"map"]){

            

        }

    }while ((element = element->nextSibling));

}

- (void) dealMainMenuMoudle:(TBXMLElement *)_element{

    TBXMLElement *element = [TBXML childElementNamed:@"item" parentElement:_element];

    self.mainMenuArray = [[NSMutableArray alloc] init];

    self.mainMenuTitle = [TBXML valueOfAttributeNamed:@"title" forElement:_element];

    do{

        NSMutableDictionary *item = [[NSMutableDictionary alloc] init];

        [item setObject:[TBXML valueOfAttributeNamed:@"title" forElement:element] forKey:@"title"];

        [item setObject:[TBXML valueOfAttributeNamed:@"icon" forElement:element] forKey:@"icon"];

        [item setObject:[TBXML valueOfAttributeNamed:@"target" forElement:element] forKey:@"target"];

        [self.mainMenuArray addObject:item];

    }while((element = element->nextSibling));

}


好了,代碼暫時就這麼多,做個記錄

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章