我有一个应用程序,在网络上有管理端,在iOS上有用户端。在网络端,我放置了tinymce编辑器,允许管理员在段落和 ListView 中输入文本。在数据库中输入的数据也有 html 标签,在网络服务中,我以 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 &</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;
}
我尝试使用许多编辑器,但我得到了几乎所有编辑器的标签,如果我不使用任何编辑器,我将所有数据作为单个段落获得。
谁能告诉我如何删除这些标签而不消除其效果。或者也许是我可以在没有标签的段落和 ListView 中输入数据的方法
最佳答案
这样的东西对你有用吗?
- (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];
}
关于javascript - 从 ios 数据中去除 html 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31426075/