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

时间:2010-11-23 16:48:58

标签: 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"];

从网上保存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。

1 个答案:

答案 0 :(得分:6)

更改此行:

NSURL *xmlFile = [NSURL URLWithString:appFile];

到此:

NSURL *xmlFile = [NSURL fileURLWithPath:appFile];

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