2011-06-29 26 views
0

我一直在瀏覽Stackoverflow和其他論壇中的問題,並嘗試了幾個建議的解決方案,但沒有任何工作。我在iPhone 4.3模擬器中使用Xcode 4.0.1。NSXMLParserPrematureDocumentEndError = 5 //文檔意外結束

錯誤林接收:

NSXMLParserPrematureDocumentEndError = 5 //文檔意外結束。

這是XML文件:

<?xml version="1.0" encoding="utf-8" ?> 
<errorDetails> 

    <errorCode>15</errorCode> 
    <errorText>The very special error</errorText> 

</errorDetails> 

這是調用代碼:

NSURL *xmlUrl = [NSURL fileURLWithPath:@"http://172.16.202.155/results.xml"]; 
NSXMLParser *xmlDoc = [[NSXMLParser alloc] initWithContentsOfURL: xmlUrl]; 
XMLParser *parser = [[XMLParser alloc]init]; 

[xmlDoc setDelegate: parser]; 

[xmlDoc setShouldProcessNamespaces:NO]; 
[xmlDoc setShouldReportNamespacePrefixes:NO]; 
[xmlDoc setShouldResolveExternalEntities:NO]; 

[xmlDoc parse]; 

if ([xmlDoc parserError]){ 
    NSLog(@"%@",[xmlDoc parserError]); 
} 
else NSLog(@"Parsing done!"); 

鏈接的作品,它是在web視圖可見。

這些在XMLparser.m中實現,但它似乎從來沒有被要求。

- (void)parser:(NSXMLParser *)parser 
didStartElement:(NSString *)elementName 
    namespaceURI:(NSString *)namespaceURI 
qualifiedName:(NSString *)qualifiedName 
    attributes:(NSDictionary *)attributeDict 

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string 

- (void)parser:(NSXMLParser *)parser 
didEndElement:(NSString *)elementName 
    namespaceURI:(NSString *)namespaceURI 
qualifiedName:(NSString *)qName 

謝謝你的幫助。

+0

我喜歡你非常特殊的錯誤 Maulik

回答

4

嘗試從

NSURL *xmlUrl = [NSURL fileURLWithPath:@"http://172.16.202.155/results.xml"]; 

更改爲

NSURL *xmlUrl = [NSURL URLWithString:@"http://172.16.202.155/results.xml"]; 
+0

這做到了。非常感謝您的幫助。 – Stellan

+0

如果你已經測試了xmlURL來查看它是否爲零(或者在調試器中檢查過它),你會馬上意識到你的URL是無效的(作爲文件URL)。 – JeremyP