如何在文档中下载并保存XML,以及如何解析文档中的XML文件?

3

在我的应用程序中,我需要解析从互联网下载的XML文件。如何下载这个XML文件并保存在iPhone上的文档中?然后如何开始解析保存在文档中的XML?

2个回答

4
你的意思是类似于这样的东西吗?
NSString *URLString = @"http://www.example.com/XML/note.xml";
NSURL *URL = [NSURL URLWithString:
              [URLString stringByAddingPercentEscapesUsingEncoding:
               NSASCIIStringEncoding]];


NSData *dataXML = [NSData dataWithContentsOfURL:URL];

NSString *applicationDocumentsDir = 
[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
NSString *storePath = [applicationDocumentsDir stringByAppendingPathComponent:@"sample.xml"];
[dataXML writeToFile:storePath atomically:TRUE];
    NSData *contenuto = [NSData dataWithContentsOfFile:storePath];
    NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithData:contenuto]

在我看来,它看起来还不错。有什么问题吗?(请更新您的答案并对我的答案发表评论,而不是回答您的问题--当您这样做时,我不会收到通知,因此无法做出反应。) - Kalle

3

第一次加载时将内容下载到一个NSData对象中。使用以下任一方式将其保存到磁盘中:

 writeToFile:atomically:
 writeToFile:options:error:

这里描述了NSData类的参考文档:http://developer.apple.com/mac/library/documentation/Cocoa/Reference/Foundation/Classes/NSData_Class/Reference/Reference.html#//apple_ref/occ/instm/NSData/writeToFile:atomically。如果你想从磁盘加载它,请使用[NSData dataWithContentsOfFile:]将其再次加载到NSData对象中。至于将NSData解析为XML,请查看其他回答中对这个非常常见问题的解释,例如How do I parse an NSString containing XML in Objective-C?

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接