使用Objective-C将HTML文本转换为纯文本

伊戈尔(Igor Prusyazhnyuk)

NSString里面有很多HTML文字。该字符串的长度大于3.500.000个字符。我该如何将HTML文本转换为NSString纯文本格式。我正在使用扫描仪,但是它工作太慢。任何想法 ?

o15a3d4l11s2

这取决于您要定位的iOS版本。从iOS7开始,有一个内置方法,该方法不仅会剥离HTML标签,而且还会将格式设置为字符串:

Xcode 9 /迅捷4

if let htmlStringData = htmlString.data(using: .utf8), let attributedString = try? NSAttributedString(data: htmlStringData, options: [.documentType : NSAttributedString.DocumentType.html], documentAttributes: nil) {
    print(attributedString)
}

您甚至可以创建如下扩展名:

extension String {
    var htmlToAttributedString: NSAttributedString? {
        guard let data = self.data(using: .utf8) else {
            return nil
        }

        do {
            return try NSAttributedString(data: data, options: [.documentType : NSAttributedString.DocumentType.html, .characterEncoding: String.Encoding.utf8.rawValue], documentAttributes: nil)
        } catch {
            print("Cannot convert html string to attributed string: \(error)")
            return nil
        }
    }
}

请注意,此示例代码正在使用UTF8编码。您甚至可以创建函数而不是计算属性,然后将编码添加为参数。

迅捷3

let attributedString = try NSAttributedString(data: htmlString.dataUsingEncoding(NSUTF8StringEncoding)!,
                                              options: [NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType],
                                              documentAttributes: nil)

目标C

[[NSAttributedString alloc] initWithData:[htmlString dataUsingEncoding:NSUTF8StringEncoding] options:@{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType, NSCharacterEncodingDocumentAttribute: [NSNumber numberWithInt:NSUTF8StringEncoding]} documentAttributes:nil error:nil];

如果只需要删除<之间的所有内容>(肮脏的方式!!!),如果字符串中包含这些字符,则可能会出现问题,请使用以下命令:

- (NSString *)stringByStrippingHTML {
   NSRange r;
   NSString *s = [[self copy] autorelease];
   while ((r = [s rangeOfString:@"<[^>]+>" options:NSRegularExpressionSearch]).location != NSNotFound)
     s = [s stringByReplacingCharactersInRange:r withString:@""];
   return s;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用JavaScript将纯文本列表转换为HTML列表

来自分类Dev

使用Javascript将HTML转换为纯文本

来自分类Dev

使用纯js(硒)将html表格文本转换为json数据

来自分类Dev

使用键值对将纯文本转换为对象

来自分类Dev

使用javascript将纯文本转换为CSS值

来自分类Dev

如何使用XSLT将标签的值转换为纯文本

来自分类Dev

使用javascript将嵌套列表转换为缩进的纯文本

来自分类Dev

使用Angular将输入字段的字符串中的隐式编码HTML转换为纯文本

来自分类Dev

无法使用angular js将数据从json数据转换为纯文本(表格)

来自分类Dev

Primefaces textEditor:使用JavaScript无法将文本转换为HTML

来自分类Dev

使用javascript和regex将原始html转换为文本

来自分类Dev

xml使用xsl转换为纯文本,无需硬编码

来自分类Dev

将HTML转换为适当的纯文本?

来自分类Dev

将纯文本转换为HTML

来自分类Dev

将HTML转换为UNFORMATTED纯文本?

来自分类Dev

如何使用C#正则表达式将输入文本标签替换为其值的纯文本?

来自分类Dev

使用SAPI将语音转换为文本

来自分类Dev

使用VBA将整数转换为文本

来自分类Dev

使用SAPI将语音转换为文本

来自分类Dev

使用JavaScript将Binary转换为文本

来自分类Dev

使用Perl将pdf转换为文本

来自分类Dev

使用 SUMIF 将文本转换为数字

来自分类Dev

使用Perl和Win32 :: OLE,如何将Word文档中的编号列表转换为纯文本?

来自分类Dev

我应该使用哪个 CLI 应用程序将 Word 模板(*.dot 文件)转换为纯文本?

来自分类Dev

使用itextsharp xmlworker将html转换为pdf并垂直写入文本

来自分类Dev

如何使用bash脚本将文本转换为html字符代码?

来自分类Dev

使用python将文本文件转换为html文件

来自分类Dev

如何使用xslt将xml中的文本转换为html中的超链接

来自分类Dev

如何使用jQuery将html文本框中的单词转换为“标签”?

Related 相关文章

  1. 1

    使用JavaScript将纯文本列表转换为HTML列表

  2. 2

    使用Javascript将HTML转换为纯文本

  3. 3

    使用纯js(硒)将html表格文本转换为json数据

  4. 4

    使用键值对将纯文本转换为对象

  5. 5

    使用javascript将纯文本转换为CSS值

  6. 6

    如何使用XSLT将标签的值转换为纯文本

  7. 7

    使用javascript将嵌套列表转换为缩进的纯文本

  8. 8

    使用Angular将输入字段的字符串中的隐式编码HTML转换为纯文本

  9. 9

    无法使用angular js将数据从json数据转换为纯文本(表格)

  10. 10

    Primefaces textEditor:使用JavaScript无法将文本转换为HTML

  11. 11

    使用javascript和regex将原始html转换为文本

  12. 12

    xml使用xsl转换为纯文本,无需硬编码

  13. 13

    将HTML转换为适当的纯文本?

  14. 14

    将纯文本转换为HTML

  15. 15

    将HTML转换为UNFORMATTED纯文本?

  16. 16

    如何使用C#正则表达式将输入文本标签替换为其值的纯文本?

  17. 17

    使用SAPI将语音转换为文本

  18. 18

    使用VBA将整数转换为文本

  19. 19

    使用SAPI将语音转换为文本

  20. 20

    使用JavaScript将Binary转换为文本

  21. 21

    使用Perl将pdf转换为文本

  22. 22

    使用 SUMIF 将文本转换为数字

  23. 23

    使用Perl和Win32 :: OLE,如何将Word文档中的编号列表转换为纯文本?

  24. 24

    我应该使用哪个 CLI 应用程序将 Word 模板(*.dot 文件)转换为纯文本?

  25. 25

    使用itextsharp xmlworker将html转换为pdf并垂直写入文本

  26. 26

    如何使用bash脚本将文本转换为html字符代码?

  27. 27

    使用python将文本文件转换为html文件

  28. 28

    如何使用xslt将xml中的文本转换为html中的超链接

  29. 29

    如何使用jQuery将html文本框中的单词转换为“标签”?

热门标签

归档