从URL获取XML文件到NSData对象?

时间:2009-08-22 00:37:11

标签: iphone objective-c cocoa-touch nsdata

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

网址格式如下:

http://127.0.0.1/config.xml

2 个答案:

答案 0 :(得分: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];

答案 1 :(得分:4)