如何读取XML“本地文件”和解析可可触摸
问题描述:
我可以读远程 XML用下面的代码:如何读取XML“本地文件”和解析可可触摸
-(id)loadXMLByURL:(NSString *)urlString
{
tweets = [[NSMutableArray alloc] init];
NSString *filePath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:urlString];
NSURL *url = [NSURL URLWithString:urlString];
parser = [[NSXMLParser alloc] initWithContentsOfURL:url];
parser.delegate = self;
[parser parse];
return self;
}
而且我在这里调用上述功能:
- (void)viewDidLoad
{
xmlcont = [[XMLController alloc] loadXMLByURL:@"http://192.168.10.12:81/book.xml"];
for (Tweet *t in [xmlcont tweets]) {
NSLog(@"At date: %@ you wrote: %@",[t createdAt], [t content]);
}
[super viewDidLoad];
}
其实我想做这样的事情,只是一个区别。我想读取一个XML 本地文件这是我的资源文件夹我的项目在XCode,但definitelly我不知道该怎么做!我越来越疯狂了!我只能读取XML远程文件(http://..../file.xml)。
答
假设您的资源文件夹中有一个file.xml
需要解析。你可以得到这样的文件路径,
NSString * filePath = [[NSBundle mainBundle] pathForResource:@"file" ofType:@"xml"];
有两种方法可以使用它来得到你想要的。
使用文件URL
NSURL * fileURL = [NSURL fileURLWithPath:filePath];
NSXMLParser * parser = [[NSXMLParser alloc] initWithContentsOfURL:fileURL];
....
使用文件数据
NSData * fileData = [NSData dataWithContentsOfFile:filePath];
NSXMLParser * parser = [[NSXMLParser alloc] initWithData:fileData];
....
感谢您完整的例子。这很容易,但是很少有像你这样解释的例子。非常感谢你! – jbernardo
@jbernardo如果这个答案解决了你的问题,你应该接受它,给答案者一些好的信用:-) – 2012-07-10 10:50:28