Обработка строки iOS для удаления тега HTML

У меня есть следующая строка...

Overall: 21 (1,192,742<img src="/images/image/move_up.gif" title="+7195865" alt="Up" />)<br />
August: 21 (1,192,742<img src="/images/image/move_up.gif" title="+722865" alt="Up" />)<br />

Мне нужно удалить HTML-тег, можно ли удалить все между <img и />?


person Lee Armstrong    schedule 15.08.2009    source источник
comment
какую именно строку вы хотите получить? Вы хотите удалить все, что находится внутри угловых скобок, из всего текста?   -  person David Maymudes    schedule 16.08.2009


Ответы (2)


Вы хотите удалить весь HTML-контент из строки? Если это так, вы можете подойти к нему следующим образом:

- (void)removeHtml:(NSString *) yourString
{
    NSString *identifiedHtml = nil;

    //Create a new scanner object using your string to parse
    NSScanner *scanner = [NSScanner scannerWithString: yourString];

    while (NO == [scanner isAtEnd])
    {

        // find opening html tag
        [scanner scanUpToString: @"<" intoString:NULL] ; 

        // find closing html tag - store html tag in identifiedHtml variable
        [scanner scanUpToString: @">" intoString: &identifiedHtml] ;

        // use identifiedHtml variable to search and replace with a space
        NSString yourString = 
                 [yourString stringByReplacingOccurrencesOfString:
                             [ NSString stringWithFormat: @"%@>", identifiedHtml]
                             withString: @" "];

    }
    //Log your html-less string
    NSLog(@"%@", yourString);
}
person Paul McCabe    schedule 16.08.2009

Я не уверен, будет ли это работать на iPhone (потому что initWithHTML:documentAttributes: является дополнением AppKit), но я протестировал его для приложения Cocoa.

NSString *text = "your posted html string here";        
NSData *data = [text dataUsingEncoding: NSUnicodeStringEncoding];
NSAttributedString *str = 
   [[[NSAttributedString alloc] initWithHTML: data documentAttributes: nil] autorelease];
NSString *strippedString = [str string];
person cocoafan    schedule 15.08.2009
comment
stackoverflow.com/questions/729135/ может означать, что вы не можете использовать это на iPhone - person David Maymudes; 16.08.2009
comment
@DavidMaymudes также говорит, что NSAttributedString был представлен в iOS 4. - person Cœur; 14.12.2019