В чем смысл ошибки NSXMLParserErrorDomain 5.?
-
05-07-2019 - |
Вопрос
Хорошо, я возвращаюсь к этой задаче.Мой XML-файл правильно загружен с моего веб-сервера с URL-адресом, указывающим на файл сервера, однако, когда я обнаруживаю, что сеть "недоступна", я просто указываю URL-адрес на локальный XML моего приложения и получаю следующую ошибку (Примечаниефайл является прямой копией того, что находится на сервере).
Я не могу найти подробное описание, но я думаю, что это говорит о том, что URL указывает на недоступное местоположение.Я храню этот ресурс не в том месте?Я думаю, я хочу, чтобы это было в домашнем каталоге / Библиотеке??
Отладочный вывод
loadMyXml: /var/mobile/Applications/950569B0-6113-48FC-A184-4F1B67A0510F/MyApp.app/SampleHtml.xml 2009-10-14 22:08:17.257 MyApp[288:207] Wah! It didn't work. Error Domain=NSXMLParserErrorDomain Code=5 "Operation could not be completed. (NSXMLParserErrorDomain error 5.)" 2009-10-14 22:08:17.270 MyApp[288:207] Operation could not be completed. (NSXMLParserErrorDomain error 5.)
Решение 3
По словам Дейва Делонга,
Это означает, что у него возникли проблемы с синтаксическим анализом вашего файла.
Я думаю, что это может быть ссылка на XSLT в XML, поскольку она указывает на веб-сервер.Я рассмотрю этот вопрос и вернусь к нему с улучшенным ответом.
Это был путь к файлу.Мой код даже близко не подходил к нужному местоположению - и мне не хватало завершающей буквы "s".Определение кода ошибки подразумевает "преждевременное завершение файла", что заставило меня безрезультатно обрезать мой файл.Затем я вернулся к основам и прошелся по файловой системе, чтобы найти свой файл.
Я отладил, используя NSFileManager для перехода к моему файлу, а затем проверил, что он доступен для загрузки с помощью contentsAtPath Путь к контенту способ.Я смог сбросить его с помощью NSLog().Как только я убедился, что файл был правильно сформирован и загружен в необработанном виде, я убедился, что мой NSURL был создан с тем же синтаксисом и методами.Затем он загрузился правильно.Теперь я могу загрузить либо "полнофункциональный" контент сетевого файла, либо локальный "образец" контента.
NSDirectoryEnumerator *dirEnumerator = [[NSFileManager defaultManager] enumeratorAtPath: NSHomeDirectory()];
NSString *something;
NSString *f;
while( something = [dirEnumerator nextObject] ) {
f = [[[NSString alloc] initWithFormat: @"%@/%@", NSHomeDirectory(), something] autorelease];
if( [f hasSuffix :@"two_cookies.xml"] ){
NSData *nsData = (NSData*) [[NSFileManager defaultManager] contentsAtPath: f];
NSLog(@"%@", nsData );
}
}
Выходной сигнал
2009-10-22 00:47:40.147 MyApp[13843:20b] <?xml version="1.0" encoding="iso-8859-1"?>
P.S.Я надеюсь, что моя откровенность здесь будет полезна другим, когда они будут отлаживать свою обработку данных.
Другие советы
В том же ключе, что и принятый ответ, у меня была похожая проблема, потому что я загружал свой файл, используя:
[NSURL URLWithString:pathToFile]; // **Wrong**
Вместо этого это должно быть:
[NSURL fileURLWithPath:pathToFile];
Я тоже потратил много времени на изучение того, как мой файл может быть неправильно сформирован, может отсутствовать и т. д., прежде чем осознал, что это такая простая тонкая разница. Р>