#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>