3

我需要将 .xml 文件从 URL 地址加载到 NSData 对象中,以便进一步解析我已经拥有的一些库,(但他们问我 .xml 文件作为 NSData ),我该怎么做?

url 格式将是这样的:

http://127.0.0.1/config.xml

4

2 回答 2

7

假设它是 UTF-8 数据。如果它是本地的(即在包内),例如:

NSError *error;
NSString* contents = [NSString stringWithContentsOfFile:PATHTOLOCALFILE 
                               encoding:NSUTF8StringEncoding
                               error:&error];
NSData* xmlData = [contents dataUsingEncoding:NSUTF8StringEncoding];

如果它在远程站点上,应该这样做。请注意,它是同步的。如果您需要异步加载,那么您必须先建立自己的网络或使用 ASIHTTPConnection 之类的东西来下载文件。

NSError *error;
NSString* contents = [NSString stringWithContentsOfUrl:[NSURL URLWithString:URLOFXMLFILE] 
                               encoding:NSUTF8StringEncoding
                               error:&error];
NSData* xmlData = [contents dataUsingEncoding:NSUTF8StringEncoding];
于 2009-08-22T00:54:55.950 回答
4

您可以调用NSData- (id)initWithContentsOfURL:(NSURL *)aURL例程。更多信息在这里:

http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSData_Class/Reference/Reference.html

于 2009-08-22T00:51:30.067 回答