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

时间:2017-06-19 10:57:02

标签: html objective-c cocoa nsstring

我有一个方法可用于将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。 Excepteur sint occaecat cupidatat non proident,sunt in culpa qui officia deserunt mollit anim id est laborum。

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

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

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

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

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

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

1 个答案:

答案 0 :(得分:0)

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

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


  }