2011-01-18 2 views
2

У меня есть внешний XML-файл, который я хочу представить в объекте NSDataПредставлять содержание XML как NSData - iPhone

Я делаю это;

NSError *error; 
NSString* contents = [NSString stringWithContentsOfUrl:[NSURL URLWithString:@"http://www.apple.com/"] 
               encoding:NSUTF8StringEncoding 
               error:&error]; 
NSData* xmlData = [contents dataUsingEncoding:NSUTF8StringEncoding];

Но по некоторым причинам, я получаю сообщение об ошибке (не отвечает)

Пожалуйста, помогите мне.

ответ

2

У меня нет времени, чтобы проверить это, но я думаю, вы можете попробовать посмотреть в NSData's dataWithContentsOfURL: или dataWithContentsOfURL:options:error: и получить его напрямую в качестве данных.

Кроме того, если вы не просто выбросили http://www.apple.com/ в качестве заполнителя, я не верю, что источником этой страницы является XML. Следующий фид действителен xml: https://stackoverflow.com/feeds Вы можете попробовать это. с тем, что у вас есть сейчас, и посмотреть, работает ли оно.

Надеюсь, это поможет.

Обновлено:

Без моего ведома вашего проекта, вы можете получить некоторую выгоду от использования TouchXML - https://github.com/mrevilme/TouchXML, который обрабатывает XML очень хорошо в том числе то, что вы пытаетесь сделать:

CXMLDocument *xmlDoc = [[CXMLDocument alloc] initWithContentsOfURL:(NSURL *)inURL encoding:(NSStringEncoding)encoding options:(NSUInteger)inOptions error:(NSError **)outError]; 
+0

Просто пробовал , Он также говорит + [NSString dataWithContentsOfURL: кодирование: ошибка]: непризнанный селектор послал к классу 0x20ed60 Также apple.com только для placeholder..im прохождения URL, который возвращает XML – testndtv

+0

SRY, я должен был быть более ясным с моим предложением. Я предлагаю пропустить строку. Перейдите прямо к NSData * xmlData = [NSData dataWithContentsOfURL: [NSURL URLWithString: @ "http://www.apple.com/"] ]; – dredful

+0

да, похоже, что это работает :) – testndtv

Смежные вопросы