【问题标题】:RaptureXML could not load data from user pathRaptureXML 无法从用户路径加载数据
【发布时间】:2013-06-11 16:05:24
【问题描述】:

我是 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 Simulator/6.0/Applications/myapplicationguid/Documents/data.xml"

文件存在,我已通过[[NSFileManager defaultManager] fileExistsAtPath:filename]; 进行了检查。我还手动打开了它,并将来自 RaptureXML 的示例 XML 文件中的值放在那里,所以它不可能是 XML 中的任何不匹配,否则......

但是当我使用[RXMLElement elementFromXMLFile:filename] 时,它不会返回任何东西......有什么想法吗?

【问题讨论】:

    标签: iphone ios objective-c xml-parsing


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      最好使用 initFromXMLFilePath: 方法。

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

      【讨论】:

        猜你喜欢
        • 2021-04-21
        • 1970-01-01
        • 1970-01-01
        • 2019-11-08
        • 2017-05-07
        • 2020-09-08
        • 1970-01-01
        • 1970-01-01
        • 2015-06-25
        相关资源
        最近更新 更多