2016-01-08 2 views
0

Как разобрать html-текст в обычный текст без атрибутной строки?Как разобрать html-текст в обычный текст без атрибутивной строки?

Это мой код:

(NSString *)convertHTML:(NSString *)html { 
    NSScanner *myScanner; 
    NSString *text = nil; 
    myScanner = [NSScanner scannerWithString:html]; 
    while ([myScanner isAtEnd] == NO) { 
     [myScanner scanUpToString:@"<" intoString:NULL]; 
     [myScanner scanUpToString:@">" intoString:&text]; 
     html = [html stringByReplacingOccurrencesOfString:[NSString stringWithFormat:@"%@>", text] withString:@""]; 
    } 
    // 
    html = [html stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]; 
    return html; 
} 
+0

Возможный дубликат [как удалить HTML-теги из NSString в iphone?] (Http://stackoverflow.com/questions/23757655/how-to-remove-html-tags-from-nsstring-in-iphone) – Larme

ответ

0

Если у вас есть доступ к UIWEbView какой-то, вы могли бы выполнить некоторые JavaScript для извлечения .text() элемента, который содержит HTML, который вы хотите stringify?

0

Вы можете использовать следующий код и получить от here

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

NSString *hstmString = @"This is <font color='red'>simple</font>"; 

NSString* strWithoutFormatting = [self stringByStrippingHTML:hstmString]; 

NSLog(@"%@", strWithoutFormatting); 

Это может быть, поможет вам :)

0

При использовании библиотеки вариант можно попробовать HTMLKit.

К примеру, учитывая следующие HTML:

<p>Some <b>text</b> to <em>extract</em></p>

один способ разобрать его в обычный текст будет:

// create a <div> element 
HTMLElement *element = [[HTMLElement alloc] initWithTagName:@"div"]; 
// set its innerHTML 
element.innerHTML = @"<p>Some <b>text</b> to <em>extract</em></p>"; 
// textContext of the element contains all the text 
NSLog(@"%@", element.textContent); 
// You get: 'Some text to extract' 

Позвольте мне знать, если вам нужна дополнительная помощь.

Если ваш HTML-код прост и разбирается, это не основная функциональность вашего приложения/проекта, то, возможно, HTMLKit не для вас, так как это полноценный HTML-парсер.

+0

, как выравнивать текст, который неправильно выравнивается. Я использовал приписанную строку –

+0

@SagarDaundkar, что вы подразумеваете под «неправильно выровненной»? Не могли бы вы привести мне пример. – iska