2013-04-17 74 views
0

我有一個XML文件在我的服務器上,我需要解析它到我的iOS應用程序,然後我需要把它放到UITableView。我的XML看起來是這樣的:解析XML到UITableView

<plan> 
    <action> 
     <id>1</id> 
     <name>item 1</name> 
    </action> 
    <action> 
     <id>2</id> 
     <name>item 2</name> 
    </action> 
    <action> 
     <id>3</id> 
     <name>item 3</name> 
    </action> 
</plan> 

我需要的是<item>標籤的每個實例取到表視圖。

有人可以告訴我該怎麼做嗎?

非常感謝。

回答

2

蘋果已經提供了可能包含你需要什麼,該項目被稱爲LazyTableImages,你可以找到它here

這個例子將不執行下列步驟的例子:

  1. 解析內容與的NSXMLParser通過調用其委託方法
  2. 負載解析的數據到的ViewController
  3. 刷新的UITableView數據以顯示從XML
  4. 提取的內容
0

例子:

#import <Foundation/ 
Foundation.h> 

@interface Parser : NSObject <NSXMLParserDelegate> 
{ 
    NSXMLParser *parser; 
    NSMutableString *element; 
    NSString *tag; 
} 

@end 
//initalization of parser 
-init { 
    if(self == [super init]) { 
      //pass in your xml file/code here here. 
      parser = [[NSXMLParser alloc] 
initWithContentsOfURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] 
pathForResource:@"Sample" ofType: @"xml"]]]; 
      [parser setDelegate:self]; 
      [parser parse]; 
    }  
    return self; 
} 
//start parsing 
- (void)parser:(NSXMLParser *)parser 
didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI 
qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary 
*)attributeDict { 

NSLog(@"Started 
Element %@", elementName); 
     element = [NSMutableString 
string]; 

} 

// end parsing 
- (void)parser:(NSXMLParser *)parser 
didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI 
qualifiedName:(NSString *)qName { 

     if([elementName isEqualToString:@"name"] 
     tag = element; 

} 

save the string 
- (void)parser:(NSXMLParser *)parser 
foundCharacters:(NSString *)string 

if(element == nil) 
    element = [[NSMutableString 
alloc] init]; 
    [element appendString:string]; 
} 

希望這有助於...