2011-10-02 140 views
0
NSURL *url = [[NSURL alloc] initWithString:@"..."]; 
NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithContentsOfURL:url]; 


//Initialize the delegate. 
XMLParser *parser = [[XMLParser alloc] initXMLParser]; 

//Set delegate 
[xmlParser setDelegate:parser]; 


//Start parsing the XML file. 
BOOL success = [xmlParser parse]; 

if(success) 
    NSLog(@"No Errors"); 
else 
    NSLog(@"Error Error Error!!!"); 

[xmlparser parse] 

返回no。爲什麼會發生?xmlparser解析不會總是返回,如何解決?

輸出:錯誤錯誤錯誤!

+0

你寫的代碼代表獲得的數據,對不對?展示下。 – zaph

+0

需要通過'initWithContentsOfURL:'(或者如果它是一個公共網站,則使用「url」)來查看傳遞給它的數據。 – chown

回答

1

如果您在代理XMLParser類中實施parseErrorOccurred:方法,它會給出錯誤的確切原因。

喜歡的東西:

- (void)parser:(NSXMLParser *)parser parseErrorOccurred:(NSError *)parseError { 
    NSLog(@"NSXMLParser ERROR: %@ - %@", , [parseError localizedDescription], [parseError localizedFailureReason]); 
} 
+0

: - 錯誤是-------- NSXMLParser錯誤:操作無法完成。 (NSXMLParserErrorDomain error 65.) - (null) 是什麼問題。 – mAc

+0

這可能意味着文檔格式不正確,或者在從服務器下載時使用了錯誤的編碼,因此無法解析。你可以在你的問題中發佈樣例xml,以及編碼類型嗎? – chown

+0

http://stackoverflow.com/questions/8162477/my-nsxmlparser-is-not-parsing-and-returning-null ..這是我的問題 – mAc