#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>"];
У меня это сработало очень хорошо.
Коля