parse xml into UITableView



我在服务器上有一个XML文件,我需要将其解析为我的iOS应用程序,然后我需要将其放入UITableView。我的XML是这样的:

<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>标签的每个实例。

谁能告诉我怎么做?

Apple提供了一个示例,它可能正好包含了您需要的内容,该项目名为LazyTableImages,您可以在这里找到它

这个例子将执行以下步骤:

  1. 通过调用NSXMLParser的委托方法解析内容
  2. 加载解析后的数据到ViewController
  3. 重新加载UITableView数据以显示从XML中提取的内容

你必须使用NSXMLParser来解析你的XML文件。或者试试这个

示例:

#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];
}

最新更新