NSXMLParserPrematureDocumentEndError = 5 // Документ неожиданно завершился - PullRequest
0 голосов
/ 29 июня 2011

Я просматривал вопросы в Stackoverflow и других форумах и пробовал несколько предложенных решений, но ничего не работает. Я использую Xcode 4.0.1 с симулятором iPhone 4.3.

Ошибка, которую я получаю:

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!");

Ссылка работает, это видно в webView.

Они реализованы в 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

Спасибо, что помогли мне.

1 Ответ

4 голосов
/ 29 июня 2011

попробуйте изменить с

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

до

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