2015-03-13 70 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