2012-06-21 23 views
-1

如何在UITableview上呈现XML内容。向表格视图呈现XML的内容

样本结构:

</node> 
     <node name="abcd" id="id:1"> 
     <node name="abcde" id="id:1"/> 
    </node> 

下表中的结构应该被表示为下面 ABCD ABCDE

+0

你应该解析XML,加载数据到一个数组,然后使用该数组矿脉上表中的数据。 – rptwsthi

回答

0

对于初学者来说,也许你应该使用iPhone SDK 5.0 ......话虽这么说,您需要使用NSXMLParser对象解析XML。

我在向朋友解释它的过程中做了一个简单的工作,并且已经将其调整为适合您的代码。这里的标题:

@interface MyParser : NSObject <NSXMLParserDelegate> { 
    NSMutableArray *nodeArray; 
} 

+(NSArray*)parseNodeData:(NSData*)data; 
-(NSArray*)nodes; 
-(void)parseWithData:(NSData*)data; 
@end 

和实现:

@implementation MyParser 

+(NSArray*)parseNodeData:(NSData*)data { 
    NSArray *ret; 
    MyParser *parser = [[MyParser alloc] init]; 
    [parser parseWithData:data]; 
    ret = [parser nodes]; 
    [parser release]; 
    return(ret); 
} 

-(NSArray*)nodes { 
    if (nodeArray == nil) 
    return(nil); 
    return([NSArray arrayWithArray:nodeArray]); 
} 

-(void)dealloc { 
    [nodeArray release]; 

    [super dealloc]; 
} 

-(void)parseWithData:(NSData*)data { 
    NSXMLParser parser = [[NSXMLParser alloc] initWithData:data]; 
    [parser setDelegate:self]; 
    [parser parse]; 
    [parser release]; 
} 

#pragma mark - NSXMLParserDelegate methods 
-(void)parserDidStartDocument:(NSXMLParser*)parser { 
    if (nodeArray != nil) 
    [nodeArray release]; 

    nodeArray = [[NSMutableArray alloc] init]; 
} 

-(void)parser:(NSXMLParser*)parser didStartElement:(NSString*)elementName namespaceURI:(NSString*)namespaceURI qualifiedName:(NSString*)qName attributes:(NSDictionary*)attributeDict { 
    if ([elementName compare:@"node" options:NSCaseInsensitiveSearch] == NSOrderedSame) { 
    [nodeArray addObject[attributeDict valueForKey:@"name"]]; 
    } 
} 

@end 

使用的代码(它可以优化 - 很多)抓住你的XML文件中的信息,并将其保存到一个NSArray,将其存储在您的UITableView上并显示数据。

+0

我的问题是我们有两种类型的xml应该呈现给table.we在xml结构中定义了一个“level”字段,我可以将xml中的内容与Tableview中的内容对齐,在其中有没有这样的领域,以确定哪些是导致问题,我将摆​​脱这一点。 – pallavi

+0

任何机会,你可以添加这个XML的例子与水平参数,所以我可以改变我的答案,以满足您的需求? –

+0

xml看起来像这样: 我想要使用的一个不包含关卡字段。 – pallavi