获取html中的第二段 - iOS

时间:2014-12-17 04:44:13

标签: html ios objective-c paragraph nsscanner

我正在创建一个应用程序,它将从我到目前为止获得此代码的网站获取文本

- (void)viewDidLoad {
    [super viewDidLoad];

    NSURL *URL = [NSURL URLWithString:@"http://rss.cnn.com"];
    NSData *data = [NSData dataWithContentsOfURL:URL];

    // Assuming data is in UTF8.
    NSString *string = [NSString stringWithUTF8String:[data bytes]];
    show.text = string;


    NSString *webString = show.text;
    NSScanner *stringScanner = [NSScanner scannerWithString:webString];
    NSString *content = [[NSString alloc] init];
    while ([stringScanner isAtEnd] == NO) {
        [stringScanner scanUpToString:@"<p>" intoString:Nil];
        [stringScanner scanUpToString:@"</p>" intoString:&content];


        show.text = content;
    }


}

正如你所看到的那样,我正在尝试捕获段落,并且它已经起作用,它从网站上拉出了第一段,当我看到所有的html代码时,我看到有多个<p> /段就像它有一个<p> (some text) </p> (Some other code) <p> (some text) </p>

我的应用程序仅捕获第一段如何制作,以便应用程序也可以捕获第二段?谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用正则表达式执行此操作。使用以下代码

NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"\\<p>(.*?)\\</p>" options:NSRegularExpressionCaseInsensitive error:NULL];

NSString *webString = show.text;

NSArray *myArray = [regex matchesInString:webString options:0 range:NSMakeRange(0, [webString length])] ;

NSMutableArray *matches = [NSMutableArray arrayWithCapacity:[myArray count]];

for (NSTextCheckingResult *match in myArray) {
    NSRange matchRange = [match rangeAtIndex:1];
    [matches addObject:[webString substringWithRange:matchRange]];

    NSLog(@"%@", [matches lastObject]);
}