2015-03-13 57 views
0

我有一个JSON数据,我想将这个JSON数据转换成NSString没有HTML标记。NSString没有HTML标记

这里是我的JSON数据:

<p><strong style="font-size: 13px;">13th March</strong></p> 
<p><span id="fbPhotoSnowliftCaption" class="fbPhotosPhotoCaption" tabindex="0" data-ft="{"tn":"K"}"><span class="hasCaption">Peak is solid 6ft + a bit wild but not a breath of wind around. Rossnowlagh will be the pick of the beaches. Very good surf forecast all weekend and into the middle of next week</span></span>.</p> 
<p><span id="more-113"></span></p> 
<p>High tide: 10:56, 3.2m    <span style="color: #ff0000;"> <a href="http://www.bundoransurfco.com/webcam/"><strong></strong></a></span></p> 
<p>Low Tide: 16:32, 1.4m</p> 
<p><b>3 day forecast to March 16th</b></p> 
<p>Windy midweek but the surf is looking very good from Friday onward, right through the weekend.</p> 
     <style type='text/css'> 

我想获得这样的NSString的:

13th March 
Peak is solid 6ft + a bit wild but not a breath of wind around. Rossnowlagh will be the pick of the beaches. Very good surf forecast all weekend and into the middle of next week. 
High tide: 10:56, 3.2m 
Low Tide: 16:32, 1.4m 
3 day forecast to March 16th 
Windy midweek but the surf is looking very good from Friday onward, right through the weekend. 

我已经与stripHtml测试,但使用它之后,我NSString只是:13th March

这是我的代码(该报告的文本总是在#gallery-1之前,所以它不是牛逼的问题......但也有一些HTML标记,我认为......(因为有不同的标记它的作品!):

NSString* stringBDD = [[dicoBDD objectForKey:@"post"] objectForKey:@"content"]; 
NSString *stringWithoutLiveWebcam = [stringBDD stringByReplacingOccurrencesOfString:@"CLICK HERE FOR LIVE PEAK WEBCAM" withString:@""]; 
NSString *stringReportFirstPart = [[stringWithoutLiveWebcam componentsSeparatedByString:@"#gallery-1"] firstObject]; 
NSString* stringWithoutHtml = [stringReportFirstPart stripHtml]; 
NSLog(@"stringWithoutHtml : %@", stringWithoutHtml); 

回答

1

您可以通过使用正则表达式匹配HTML标签:</?[^>]*>。将stringByReplactingMatchesInString与正则表达式和空字符串替换一起使用,可以将标签剥离。

@interface NSString (HTML) 
- (NSString *)stripTags; 
@end 

@implementation NSString (HTML) 
- (NSString *)stripTags { 
    NSError *error = nil; 
    NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"</?[^>]*>" 
                     options:0 
                      error:&error]; 
    if (error == nil) { 
    return [regex stringByReplacingMatchesInString:self 
              options:0 
              range:NSMakeRange(0, self.length) 
             withTemplate:@""]; 
    } else { 
    return self; 
    } 
} 
@end 
+0

是的,这太好了! :) 谢谢 ! – Viny76 2015-03-13 17:02:30