iPhone, разбирающий HTML с TouchXML

Кто-нибудь из вас имеет опыт разбора HTML с помощью библиотеки TouchXML на iPhone. Я хотел бы проанализировать некоторые HTML и, следовательно, попробуйте сделать следующее

self.parser = [[CXMLDocument alloc]initWithData:self.html options:0 error:&error1];

 if (error1) {
  NSLog(@"Error: %d", error1);
 }

 NSError *error;

 NSArray *resultNodes = [[NSArray alloc]init];

 NSLog(@"starting to do some crazy parsing");


 resultNodes = [self.parser nodesForXPath:@"//div" error:&error];
 if (error)
  NSLog(@"initWithData error : %d", error);

К сожалению, это не работает вообще. И я не знаю, как отладить это правильно. Мой HTML должен быть действительным. Он просто начинается с тега html, что означает отсутствие типа документа. Кажется, что метод initWithData уже дает сбой и возвращает следующую ошибку: Ошибка: Ошибка Domain=CXMLErrorDomain Code=-1 "Операция не может быть завершена. (Ошибка CXMLErrorDomain -1.)" Если я пытаюсь вывести вторую ошибку, приложение сбой раньше, вероятно, из-за того, что initWithData не работает.

Кто-нибудь из вас имел опыт разбора HTML с помощью библиотеки TouchXML?

Спасибо за любую помощь!

2 ответа

Прежде всего, ошибка - это указатель на объект, так что если вы хотите его распечатать. Так должно быть: NSLog(@"%@", error1); То же самое для ошибки. Если вы хотите напечатать код ошибки. Ты можешь сделать NSLog(@"%d", [error1 code]), То, что вы нам даете, это просто область памяти ошибки

Следующее работает абсолютно нормально для меня. Попытайся.

 CXMLDocument *rssParser = [[[CXMLDocument alloc] initWithContentsOfURL:url options:0 error:nil] autorelease];
resultNodes = [rssParser nodesForXPath:@"//item" error:nil];

// Loop through the resultNodes to access each items actual data
for (CXMLElement *resultElement in resultNodes) {
  ....

Также убедитесь, что ваша ссылка верна. Пару раз это случалось со мной, когда я использовал feed://www.foo.com/feed вместо http://www.foo.com/feed

Приветствия.

Другие вопросы по тегам