【问题标题】:Convert HTML Text to Normal Text adds an extra Carraige Return in Objective-C将 HTML 文本转换为普通文本在 Objective-C 中添加了一个额外的回车符
【发布时间】:2017-11-21 13:28:36
【问题描述】:

我有一个方法可以用来将 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 eiusmod tempor incididunt ut labore et dolore magna aliqua。例外者 sint occaecat cupidatat non proident,sint in culpa qui officia deserunt mollit anim id est labourum。

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua。例外者 sint occaecat cupidatat non proident,sint in culpa qui officia deserunt mollit anim id est labourum。

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua。例外者 sint occaecat cupidatat non proident,sint in culpa qui officia deserunt mollit anim id est labourum。

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua。例外者 sint occaecat cupidatat non proident,sint in culpa qui officia deserunt mollit anim id est labourum。

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua。例外者 sint occaecat cupidatat non proident,sint in culpa qui officia deserunt mollit anim id est labourum。

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua。例外者 sint occaecat cupidatat non proident,sint in culpa qui officia deserunt mollit anim id est labourum。

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua。例外者 sint occaecat cupidatat non proident,sint in culpa qui officia deserunt mollit anim id est labourum。

【问题讨论】:

  • 你的初始 HTML 字符串是什么?我怀疑某些段落<br> 或类似的添加\n
  • 指定的是实际的 HTML 字符串。在此之前什么都没有。

标签: html objective-c cocoa nsstring


【解决方案1】:

也许,这段代码可以帮助你,它在这里工作正常。检查下面的代码。

 - (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 );


  }

【讨论】:

    猜你喜欢
    • 2012-02-14
    • 2013-10-14
    • 1970-01-01
    • 2021-08-23
    • 2011-03-12
    • 2015-04-15
    相关资源
    最近更新 更多