Я хочу получить информацию из некоторого тега в HTML в C Objective

#html #objective-c #xcode

#HTML #objective-c #xcode

Вопрос:

Я создаю приложение для iPhone, я получаю строку от пользователя. Я добавляю строку в конец некоторого URL, и она приводит меня на нужный мне сайт.

Теперь я хочу взять некоторую информацию с сайта, например, я хочу взять всю строку за двумя тегами <title> HTML Test Page </title> . Мне нужно проанализировать это.

Как я могу это сделать?

Ответ №1:

Вы можете использовать любой допустимый код скрипта JavaScript, переданный методу stringByEvaluatingJavaScriptFromString: экземпляра UIWebView, и проанализировать то, что он возвращает.

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

ОБНОВЛЕНИЕ: простым примером будет следующий; когда ваш UIWebView завершит загрузку URL-адреса, вы можете сделать следующее

 - (void)webViewDidFinishLoad:(UIWebView *)webView
{
  NSString *output = [webView stringByEvaluatingJavaScriptFromString: @"document.title"];
  NSLog(@"Loaded page HTML title: %@", output);
}
  

в качестве параметра метода stringByEvaluatingJavaScriptFromString: вы можете передать код JavaScript, необходимый для поиска вашего тега, используя DOM API

Комментарии:

1. извините, но эта функция: «webViewDidFinishLoad» не распознается, это выдает мне ошибку, я пытаюсь отредактировать вашу функцию для моего использования, но я не могу, потому что она не распознает

2. что вы имеете в виду, это не распознано? это метод UIWebViewDelegate … просто попробуйте выполнить поиск в документах developer.apple.com/library/IOs/documentation/UIKit/Reference /…

3. извините, теперь распознается и все в порядке, но я все еще не очень хорошо понимаю, что я поставил вместо @»document.title» и этого @»Заголовок загруженной страницы HTML: %@»??

4. document.title — это JS-код, который должен возвращать вам значение тега <title/> в загруженном HTML-документе; @»Заголовок загруженной страницы HTML: %@» — это стандартный синтаксис для объявления строки формата, где вместо %@ будет выведено значение выходной переменной

5. ага, я вижу, и если я хочу другой ТЕГ, например <tr>