从ios中的数据中剥离HTML标签

strip html tags from data in ios

本文关键字:HTML 标签 剥离 ios 数据      更新时间:2023-09-26

我有一个应用程序,在web管理端和ios用户端。在web端,我已经放置了定时编辑器,允许管理员在段落和列表视图中输入文本。在数据库中输入的数据也有html标签,在web服务中,我以json格式获取数据(从管理端输入),但与此同时,我也获得html标签。

部分数据我得到json格式看起来像这样

{
  "list":[{"id":"1","state_info":"<p class='"grid-para'" style='"box-sizing: border-box; margin: 0px; font-size: 1.1em; line-height: 1.7em; padding: 1em 0px 0px; font-family: ''Open Sans'', sans-serif;'" align='"justify'">ABC...some text &amp;</p>n<p style='"box-sizing: border-box; margin: 0px; color: #333333; font-family: ''Open Sans'', sans-serif; font-size: 14px; line-height: 20px;'"><strong style='"box-sizing: border-box;'">ABC...some text.</strong></p>n<p style='"box-sizing: border-box; margin: 0px; color: #333333; font-family: ''Open Sans'', sans-serif; font-size: 14px; line-height: 20px;'">ABC...some text"}]
}

我尝试的部分代码是

       @implementation NSString (stripHtml)
-(NSString*)stripHtml {
    NSString* string = [self stringByReplacingOccurrencesOfString:@"<p=%@&</p=%@" withString:@""];
    string = [NSString stringWithFormat:@"<root>%@</root>", string];

    NSStringEncoding encoding = string.fastestEncoding;
    NSData* data = [string dataUsingEncoding:encoding];
    NSXMLParser* parser = [[NSXMLParser alloc] initWithData:data];
    NSString_stripHtml_XMLParsee* parsee = [[NSString_stripHtml_XMLParsee alloc] init];
    parser.delegate = parsee;
    [parser parse];

    NSString* strippedString = [parsee getCharsFound];
    [parser release];
    [parsee release];
    return strippedString;
}

我曾尝试使用许多编辑器,但我得到标签与几乎所有的编辑器,如果我不使用任何编辑器,我得到所有的数据作为一个段落。

谁能告诉我如何去除这些标签而不去除它们的效果?或者我可以在段落和列表视图中输入数据而不用标记

这样的东西适合你吗?

- (NSString *)stripHTML{
    NSError *error = nil;
    NSAttributedString *attributedString = [[NSAttributedString alloc] initWithData:[self dataUsingEncoding:NSUTF8StringEncoding]
                                                                            options:@{NSCharacterEncodingDocumentAttribute:@(NSUTF8StringEncoding),
                                                                                      NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType}
                                                                 documentAttributes:nil
                                                                              error:&error];
    if(error){
        NSLog(@"Error %@",[error localizedDescription]);
    }
    return [attributedString string];
}