【问题标题】:parse xml into UITableView将 xml 解析为 UITableView
【发布时间】:2013-04-17 15:40:20
【问题描述】:
我的服务器上有一个 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> 标记的每个实例都提取到表格视图中。
谁能告诉我怎么做?
非常感谢。
【问题讨论】:
标签:
ios
xml
parsing
uitableview
【解决方案1】:
Apple 提供了一个示例,其中可能包含您需要的内容,该项目名为 LazyTableImages,您可以找到它here
此示例将执行以下步骤:
- 通过调用 NSXMLParser 的委托方法来解析内容
- 将解析后的数据加载到 ViewController 中
- 重新加载 UITableView 数据以显示从 XML 中提取的内容
【解决方案2】:
您必须使用 NSXMLParser 来解析您的 XML 文件,请参阅this。或者试试this。
【解决方案3】:
例子:
#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];
}
希望这会有所帮助...