从Web输出中提取表

时间:2011-05-21 02:39:50

标签: iphone objective-c xcode ios string

我可以将网页作为长字符串拉入我的代码中。现在我要删除<table>标记之前和<table>标记之后的所有内容 - 所以我只保留表格本身。

我正在考虑使用NSScanner或regexp。您认为哪种代码管理更有效/更容易?该页面也可能(将来)包含两个表格,我想提取每个表格(一个接一个)以便在我的视图中显示。

有什么想法吗?

提前谢谢!
Kolya

2 个答案:

答案 0 :(得分: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:&text] ;

           [tempArray addObject:text];

        } 

        return tempArray;

    }

临时数组将包含表格标记got help from this site

中的所有字符串

答案 1 :(得分:0)

所以 - 我使用过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:&tmpwebpage];
NSString *myTableOnlyData = [tmpwebpage stringByAppendingString:@"</table>"];

这对我来说非常有效。
柯里亚