2010-11-23 67 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是本地文件系統路徑,而不是一個互聯網網址。