-1

UITableview に XML コンテンツを表示する方法を教えてください。

サンプル構造:

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

テーブル内の構造は、次のように表されます abcd abcde

4

2 に答える 2

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 に答える
0

次の行を使用できます...

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

于 2012-06-21T15:10:56.550 に答える