RaptureXML无法从用户路径加载数据

时间:2013-06-11 16:05:24

标签: iphone ios objective-c xml-parsing

我是iOS开发的新手。我找到RaptureXML并且它运行安静但我无法加载存储在用户目录中的数据。在我的应用程序目录中有一个“data.xml”工作正常,我可以用[RXMLElement elementFromXMLFile:@"data.xml"];加载它。但现在我已经从Internet下载了一个文件,并使用以下行将它存储在我的用户目录中:

 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *filePath = [NSString stringWithFormat:@"%@/%@", [paths objectAtIndex:0],@"data.xml"];

计算的文件路径是

  

“/ Users / myname / Library / Application Support / iPhone   模拟器/ 6.0 /应用/ myapplicationguid /Documents/data.xml“

该文件存在,我已使用[[NSFileManager defaultManager] fileExistsAtPath:filename];进行了检查。我也手动打开它并将RaptureXML中的示例XML文件的值放在那里,因此它不能在XML中出现任何不匹配或者其他....

但是当我使用[RXMLElement elementFromXMLFile:filename]时,它不会返回任何内容......任何想法?

2 个答案:

答案 0 :(得分:1)

我现在已经解决了:由于直接访问不起作用,我首先使用标准函数加载数据,然后将NSData传输到RaptureXML,如下所示:

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

    RXMLElement *rss = [RXMLElement elementFromXMLData:xmlData];

答案 1 :(得分:0)

最好使用 initFromXMLFilePath:方法。

 RXMLElement *rss = [[RXMLElement alloc]initFromXMLFilePath: filePath];