读取本地XML文件使NSXMLParser返回NULL
问题描述:
我有一个本地xml文件,我知道它包含UTF-8格式良好的xml。但NSXMLParser不会解析correclty。读取本地XML文件使NSXMLParser返回NULL
文件的路径:
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。
答
改变这一行:
NSURL *xmlFile = [NSURL URLWithString:appFile];
这样:
NSURL *xmlFile = [NSURL fileURLWithPath:appFile];
因为appFile是本地文件系统路径,而不是一个互联网网址。