2010-11-23 68 views
2

我有一个本地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。

回答

6

改变这一行:

NSURL *xmlFile = [NSURL URLWithString:appFile]; 

这样:

NSURL *xmlFile = [NSURL fileURLWithPath:appFile]; 

因为appFile是本地文件系统路径,而不是一个互联网网址。