-1

我如何在 UITableview 上呈现 XML 内容。

样本结构:

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

表中的结构应表示为 abcd abcde

4

2 回答 2

0

您可以使用以下行...

http://www.edumobile.org/iphone/iphone-programming-tutorials/parsing-an-xml-file/

于 2012-06-21T15:10:56.550 回答
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 上并显示数据。

于 2012-06-21T13:20:35.700 回答