读取本地XML文件使NSXMLParser返回NULL

doh*_*doh 2 iphone nsxmlparser

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

档案路径:

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

从Web保存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];
Run Code Online (Sandbox Code Playgroud)

解析xml:

 NSURL *xmlFile = [NSURL URLWithString:appFile];
 NSXMLParser *addressParser = [[NSXMLParser alloc] initWithContentsOfURL:xmlFile];
Run Code Online (Sandbox Code Playgroud)

如果我尝试直接解析NSURL"xml"它可以工作,但上面的代码将返回NULL并且没有错误.我在论坛上发现了另一篇文章,描述了完全相同的内容,但我再也找不到了,帖子没有答案.

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

小智 6

改变这一行:

NSURL *xmlFile = [NSURL URLWithString:appFile];
Run Code Online (Sandbox Code Playgroud)

对此:

NSURL *xmlFile = [NSURL fileURLWithPath:appFile];
Run Code Online (Sandbox Code Playgroud)

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