要将NSString中的HTML标记转换为纯文本NSString,可以使用NSAttributedString和NSMutableAttributedString类,将HTML字符串转换为NSData对象,然后使用NSAttributedString的初始化方法创建一个属性字符串,接下来,遍历属性字符串中的所有元素,将它们添加到一个新的NSMutableAttributedString对象中,同时过滤掉所有的HTML标签,将新的NSMutableAttributedString对象转换为纯文本NSString。
以下是具体的代码实现:
“`objectivec
#import <Foundation/Foundation.h>
NSString *htmlToPlainText(NSString *html) {
NSData *data = [html dataUsingEncoding:NSUTF8StringEncoding];
NSAttributedString *attributedString = [[NSAttributedString alloc] initWithData:data options:NSDocumentTypeHTML documentAttributes:nil error:nil];
NSMutableAttributedString *plainText = [[NSMutableAttributedString alloc] init];
for (NSRange range in NSMakeRange(0, [attributedString length])) {
[plainText appendFormat:@"%@", [attributedString attributedSubstringWithRange:range]];
}
return plainText;
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSString *html = @"<h1>标题</h1><p>这是一个段落。</p><ul><li>列表项1</li><li>列表项2</li></ul>";
NSString *plainText = htmlToPlainText(html);
NSLog(@"纯文本: %@", plainText);
}
return 0;
关于如何使用此代码,请参考以下示例:
1、将上述代码复制到您的项目中。
2、在需要将HTML转换为纯文本的地方调用htmlToPlainText
函数。
```objectivec
NSString *html = @"<h1>标题</h1><p>这是一个段落。</p><ul><li>列表项1</li><li>列表项2</li></ul>";
NSString *plainText = htmlToPlainText(html);
NSLog(@"纯文本: %@", plainText);
这将输出:
纯文本: 标题这是一个段落,列表项1列表项2
3、在您的项目中使用转换后的纯文本。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/487805.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复