Извлечение таблицы из веб-вывода

#iphone #objective-c #xcode #ios #string

#iPhone #objective-c #xcode #iOS #строка

Вопрос:

Я могу вставить веб-страницу в свой код в виде длинной строки. Теперь я хочу удалить все перед <table> тегом и после <table> тега — поэтому я сохраняю только саму таблицу.

Я подумываю либо об использовании NSScanner, либо о регулярном выражении. Как вы думаете, что более эффективно / проще в управлении кодом? Страница также может (в будущем) содержать две таблицы, и я хотел бы извлечь каждую из них (одну за другой) для отображения в моем представлении.

Есть идеи?

И заранее спасибо!
Коля

Ответ №1:

привет, вы можете использовать этот код

  - (NSMutableArray *)stringFilter:(NSString *)targetString {

        NSScanner *theScanner;
        NSString *text = nil;

        theScanner = [NSScanner scannerWithString: targetString];

        while ([theScanner isAtEnd] == NO) {

            [theScanner scanUpToString:@"<table>" intoString:NULL] ; 

            [theScanner scanUpToString:@"</table>" intoString:amp;text] ;

           [tempArray addObject:text];

        } 

        return tempArray;

    }
  

временный массив будет содержать все строки в теге table, получил помощь с этого сайта

Ответ №2:

Итак, я использовал NSScanner.

 // calling a service to extract the webpage as a string..
NSString *thewebpage = [NSString stringWithFormat:@"%@", [self getthewebstring]];
NSString *tmpwebpage = @"";

// Assign 'theScanner' to class NSScanner
NSScanner *theScanner = [NSScanner scannerWithString:tmpwebpage];

// find start of TABLE
[theScanner scanUpToString:@"<h2>Table Header</h2>" intoString:nil];
[theScanner scanUpToString:@"</table>" intoString:amp;tmpwebpage];
NSString *myTableOnlyData = [tmpwebpage stringByAppendingString:@"</table>"];
  

У меня это сработало очень хорошо.
Коля