我正在构建一个从在线服务器解析XML的应用程序。我想在本地缓存XML文件24小时。如何更改以下代码以从资源目录中的文件中读取?
parser = [[NSXMLParser alloc] initWithContentsOfURL: [NSURL URLWithString:url]];
答案 0 :(得分:4)
您可以获取xml文件的路径,如下所示:
NSString* path = [[NSBundle mainBundle] pathForResource:@"yourxml" ofType:@"xml"];
然后获取如下所示的NSData实例:
NSData *xmlData = [[NSMutableData alloc] initWithContentsOfFile:path];
最后致电
initWithData
的 NSXMLParser
方法。
但您无法修改应用包的内容。无法修改捆绑包中的文件(您要求的资源目录)。
有不同的方法:
NSFileManager
类来保存和读取您的xml文件 NSFileManager
的示例:
NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString* documentsDirectoryPath = [paths objectAtIndex:0];
NSString* filePath = [documentsDirectoryPath stringByAppendingPathComponent:@"yourxml.xml"];
该代码段获取Documents目录中包含的xml文件路径。这意味着那里已有一个文件。有关详细信息,请参阅NSFileManager class和how-to-save-your-app-data-with-nscoding-and-nsfilemanager
希望它有所帮助。