【问题标题】:Reading local XML file makes NSXMLParser return NULL读取本地 XML 文件使 NSXMLParser 返回 NULL
【发布时间】:2011-05-14 14:23:18
【问题描述】:

我有一个本地 xml 文件,我知道它包含 UTF-8 格式正确的 xml。但是 NSXMLParser 不会正确解析。

文件路径:

 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
 NSString *documentsDirectory = [paths objectAtIndex:0];
 NSString *appFile = [documentsDirectory stringByAppendingPathComponent:@"example.xml"];

从网络保存 xml:

 NSURL *xml = [NSURL URLWithString:@"http://www.example.com/example.xml"];
 NSString *data = [[NSString alloc] initWithContentsOfURL:xml encoding:NSUTF8StringEncoding error:nil];
 [data writeToFile:appFile atomically:YES encoding:NSUTF8StringEncoding error:nil];

解析xml:

 NSURL *xmlFile = [NSURL URLWithString:appFile];
 NSXMLParser *addressParser = [[NSXMLParser alloc] initWithContentsOfURL:xmlFile];

如果我尝试直接解析 NSURL“xml”,它可以工作,但上面的代码将返回 NULL 并且没有错误。我在论坛上找到了另一个帖子,描述了完全相同的事情,但我再也找不到了,帖子也没有答案。

希望有人可以提供帮助!基本上,只需将 web xml 存储到文件中,然后将其提供给 NSXMLParser。

【问题讨论】:

    标签: iphone nsxmlparser


    【解决方案1】:

    改变这一行:

    NSURL *xmlFile = [NSURL URLWithString:appFile];
    

    到这里:

    NSURL *xmlFile = [NSURL fileURLWithPath:appFile];
    

    因为 appFile 是本地文件系统路径,而不是 Internet URL。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-25
      • 2019-11-13
      • 2020-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-07
      • 1970-01-01
      相关资源
      最近更新 更多