Код ошибки 5 в приложении - PullRequest
0 голосов
/ 22 ноября 2011

Я разработал одно приложение для получения RSS-канала. Я получаю этот код ошибки 5 для некоторых URL, где другие работают нормально.

Я знаю, что эта ошибка означает, что xml недействителен. Но для моего приложения я не написал ни одного xml-файла самостоятельно.

Пожалуйста, скажите мне возможные причины этого и дайте мне знать решение

импорт "RootViewController.h"

@ реализация RootViewController

  • (аннулируются) viewDidAppear: (BOOL) анимированный {

[супер viewDidAppear: анимированный];

if ([подсчитано историй] == 0) {

    path = @"http://172.19.58.108:8080/jwplayer/JSP/Videolist.jsp";
    [self parseXMLFileAtURL:path];
}

}

- (void) parseXMLFileAtURL: (NSString *) URL {

stories = [[NSMutableArray alloc]init];
NSURL *xmlURL = [NSURL URLWithString:URL];
rssParser = [[NSXMLParser alloc]initWithContentsOfURL:xmlURL];
[rssParser setDelegate:self];
[rssParser setShouldProcessNamespaces:NO];
[rssParser setShouldReportNamespacePrefixes:NO];
[rssParser setShouldResolveExternalEntities:NO];
[rssParser parse];

}

- (void) parserDidStartDocument: (NSXMLParser *) parser {

NSLog(@"Found file and started parsing");

}

- (void) парсер: (NSXMLParser *) парсер parseErrorOccurred: (NSError *) parseError {

NSString *errorString = [NSString stringWithFormat:@"Unable to download story feed from website (Error Code %i)", [parseError code]];
NSLog(@"Error parsing xml: %@", errorString);
UIAlertView *errorAlert = [[UIAlertView alloc]initWithTitle:@"Error loading content" message:errorString delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[errorAlert show];

}

- (void) синтаксический анализатор: (NSXMLParser *) анализатор didStartElement: (NSString *) elementName namespaceURI: (NSString *) namespaceURI qualName: (NSString *) qName attribute: (NSDictionary *) attributeDict {

currentElement = [elementName copy];
if ([elementName isEqualToString:@"item"]) {

    item = [[NSMutableDictionary alloc]init];
    currentTitle = [[NSMutableString alloc]init];
    currentDate = [[NSMutableString alloc]init];
    currentSummary = [[NSMutableString alloc]init];
    currentLink = [[NSMutableString alloc]init];
}

}

- (void) синтаксический анализатор: (NSXMLParser *) анализатор didEndElement: (NSString *) elementName namespaceURI: (NSString *) namespaceURI qualName: (NSString *) qName {

if ([elementName isEqualToString:@"item"]) {

    [item setObject:currentTitle forKey:@"title"];
    [item setObject:currentDate forKey:@"date"];
    [item setObject:currentSummary forKey:@"summary"];
    [item setObject:currentLink forKey:@"link"];
    [stories addObject:[item copy]];
    NSLog(@"adding story: %@", currentTitle);
}

}

- (void) парсер: (NSXMLParser *) парсер найденХарактеры: (NSString *) строка {

if ([currentElement isEqualToString:@"title"]) {

    [currentTitle appendString:string];
}
else if ([currentElement isEqualToString:@"link"]) {

    [currentLink appendString:string];
}
else if ([currentElement isEqualToString:@"description"]) {

    [currentSummary appendString:string];
}
else if ([currentElement isEqualToString:@"pubDate"]) {

    [currentDate appendString:string];
}
* *} Тысяча сорок-девять

- (void) parserDidEndDocument: (NSXMLParser *) parser {

[activityIndicator stopAnimating];
[activityIndicator removeFromSuperview];
NSLog(@"all done");
NSLog(@"stories array has %d items", [stories count]);
[newsTable reloadData];

}

1 Ответ

0 голосов
/ 22 ноября 2011

Пожалуйста, проверьте ваш класс библиотеки для разбора RSS-канала. Используйте стандартный класс библиотеки, измените код соответствующим образом.

...