当前位置: 首页 > 知识库问答 >
问题:

将HTML文本转换为普通文本在Objective-C中添加额外的Carraige返回

阎晔
2023-03-14

我有一个方法可以用来将HTML文本转换为普通文本。
问题是,当我传递HTML文本时,它会给普通文本增加一个额外的回车。

下面是导致问题的方法和示例文本。

有人能让我知道我错过了什么或者需要为此做些什么吗?
谢谢你的帮助。

- (NSString *)flattenHTML {
    NSString *finalString = self;

    if ([self isEqualToString:kSNREmptyString] == NO) {
        NSAttributedString *attributeString = nil;
        NSData *data = [self dataUsingEncoding:NSUnicodeStringEncoding];

        if (nil != data) {
            NSDictionary *encodingDict = [NSDictionary dictionaryWithObject:@(NSUnicodeStringEncoding)
                                                                     forKey:@"CharacterEncoding"];
            attributeString = [[NSAttributedString alloc] initWithHTML:data
                                                    documentAttributes:&encodingDict];
            finalString = [attributeString string];
        }
    }

    return finalString;
}

示例文本:

Lorem ipsum dolor sit amet,consectetur adipiscing elit,sed do eusmod tempor incidunt ut labore et dolore magna aliqua.Excepteur sint occaecat cupidatat non proident,sunt in culpa qui configutia deserunt mollit anim id est laborum.

Lorem ipsum dolor sit amet,consectetur adipiscing elit,sed do eusmod tempor incidunt ut labore et dolore magna aliqua.Excepteur sint occaecat cupidatat non proident,sunt in culpa qui configutia deserunt mollit anim id est laborum.

Lorem ipsum dolor sit amet,consectetur adipiscing elit,sed do eusmod tempor incidunt ut labore et dolore magna aliqua.Excepteur sint occaecat cupidatat non proident,sunt in culpa qui configutia deserunt mollit anim id est laborum.

Lorem ipsum dolor sit amet,consectetur adipiscing elit,sed do eusmod tempor incidunt ut labore et dolore magna aliqua.Excepteur sint occaecat cupidatat non proident,sunt in culpa qui configutia deserunt mollit anim id est laborum.

Lorem ipsum dolor sit amet,consectetur adipiscing elit,sed do eusmod tempor incidunt ut labore et dolore magna aliqua.Excepteur sint occaecat cupidatat non proident,sunt in culpa qui configutia deserunt mollit anim id est laborum.

Lorem ipsum dolor sit amet,consectetur adipiscing elit,sed do eusmod tempor incidunt ut labore et dolore magna aliqua.Excepteur sint occaecat cupidatat non proident,sunt in culpa qui configutia deserunt mollit anim id est laborum.

Lorem ipsum dolor sit amet,consectetur adipiscing elit,sed do eusmod tempor incidunt ut labore et dolore magna aliqua.Excepteur sint occaecat cupidatat non proident,sunt in culpa qui configutia deserunt mollit anim id est laborum.

共有1个答案

松高歌
2023-03-14

也许,这段代码对你有帮助,它在这里工作得很好。检查它下面的代码。

 - (void)viewDidLoad 
   {
      [super viewDidLoad];
      [self HtmltoText]
   }

-(void)HtmltoText
{
  NSString *Html_Str =[NSString stringWithFormat:@"<html><head>
                         <title>My First HTML</title></head><body>
                   <p>The HTML head element contains meta data.</p> 
                   <p>Meta data is data about the HTML document. <br/> 
                   Break Next line.</p></body> </html>"];

NSAttributedString *attributedString = [[NSAttributedString alloc]
                                        initWithData: [Html_Str 
                         dataUsingEncoding:NSUnicodeStringEncoding]
                                        options: @{ 
                           NSDocumentTypeDocumentAttribute: 
                         NSHTMLTextDocumentType }
                                        documentAttributes: nil
                                        error: nil
                                        ];


NSLog(@"Html To Normal %@ ",attributedString );


  }
 类似资料:
  • 问题内容: 我正在寻找C#代码以将HTML文档转换为纯文本。 我不是在寻找简单的标记剥离方法,而是会输出纯文本并 合理 保留原始布局的东西。 输出应如下所示: W3C的Html2Txt 我看过HTML Agility Pack,但我认为这不是我所需要的。有人还有其他建议吗? 编辑: 我只是从CodePlex下载HTML Agility Pack ,并运行了Html2Txt项目。真令人失望(至少是将

  • 问题内容: 我有Java程序,它将从服务器接收纯文本。纯文本可能包含URL。Java库中是否有任何Class可以将纯文本转换为HTML文本?还是其他图书馆?如果没有,那该怎么办呢? 问题答案: 我找到了使用模式匹配的解决方案。这是我的代码- 这是输入和输出- 输入文字是可变的: 输出:

  • 问题内容: 我正在开发一个简单的RSS Reader应用程序,作为Xcode中的初学者项目。目前,我已设置它解析提要,并放置标题,发布日期,描述和内容,并将其显示在WebView中。 我最近决定在用于选择帖子的TableView中显示说明(或内容的删节版本)。但是,这样做时: 它显示了帖子的原始HTML。 我想知道如何仅将TableView的详细UILabel转换为纯文本的HTML。 谢谢! 问题

  • 我有一个文本字段,用户在其中写东西,我用javascript获取文本框的文本,并在段落中显示。我有文字限制的段落像50 chrac。如果用户编写的chrac超过50个,我想显示(…)45小时后,chrac。可以使用javascript吗? 像这样的段落是用户写的,它的50多个chrac。 Lorem ipsum dolor坐在那里,奉献给我们,我们的工作和伟大的礼物。在有限的条件下,在有限的条件下

  • 问题内容: 我在表格中存储了HTML片段。 不是整个页面,没有标签等,只是基本格式。 我希望能够在给定页面上将Html仅显示为文本,而 无需设置格式 (实际上只是前30-50个字符,但这很容易)。 如何将Html中的“文本”作为纯文本放入字符串中? 所以这段代码。 成为: 你好,世界。有没有人在那里? 问题答案: 如果您在谈论标签剥离,那么无需担心标签之类的事情就相对简单了。如果您需要做的就是显示

  • 问题内容: 我有大量文本字符串,这些字符串显然是PDF文件的原始数据,我需要将其重新制作为PDF。 目前,我正在将字符串读取到StringBuffer中,但是如果需要,可以更改它。从那里,我尝试将其写到文件中并更改扩展名(我真的希望这样做能起作用,但是我有点不知道),我尝试将其带入String,然后从中取出byte []。并将其写入文件,或使用DataOutputStream将字节放入文件中。这些