如何在UITableview上呈现XML内容。向表格视图呈现XML的内容
样本结构:
</node>
<node name="abcd" id="id:1">
<node name="abcde" id="id:1"/>
</node>
下表中的结构应该被表示为下面 ABCD ABCDE
如何在UITableview上呈现XML内容。向表格视图呈现XML的内容
样本结构:
</node>
<node name="abcd" id="id:1">
<node name="abcde" id="id:1"/>
</node>
下表中的结构应该被表示为下面 ABCD ABCDE
对于初学者来说,也许你应该使用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上并显示数据。
你应该解析XML,加载数据到一个数组,然后使用该数组矿脉上表中的数据。 – rptwsthi