Цель-C: Как заменить сущности HTML?
Я получаю текст из Интернета, и он содержит HTML-сущности (т.е. ó
= ó). Я хочу показать этот текст в пользовательскую ячейку iPhone.
Я пытался использовать UIWebView в своей пользовательской ячейке, но я предпочитаю использовать многострочную UILabel. Проблема в том, что я не могу найти способ заменить эти объекты HTML.
5 ответов
Проверьте мою категорию NSString для HTML. Вот доступные методы:
- (NSString *)stringByConvertingHTMLToPlainText;
- (NSString *)stringByDecodingHTMLEntities;
- (NSString *)stringByEncodingHTMLEntities;
- (NSString *)stringWithNewLinesAsBRs;
- (NSString *)stringByRemovingNewLinesAndWhitespace;
Google Toolbox для Mac содержит совместимое с iPhone дополнение NSString, которое сделает это за вас: gtm_stringByUnescapingFromHTML
определены в GTMNSString+HTML.h и GTMNSString + HTML.m. Если вы закомментируете вызовы _GTMDevLog и #import "GTMDefines.h" в.m, вам нужно только добавить эти два файла в ваш проект.
Вы можете создать метод, который может заменить html-сущности заданными вами строками.
+(NSString*)parseString:(NSString*)str
{
str = [str stringByReplacingOccurrencesOfString:@"–" withString:@"-"];
str = [str stringByReplacingOccurrencesOfString:@"”" withString:@"\""];
str = [str stringByReplacingOccurrencesOfString:@"“" withString:@"\""];
str = [str stringByReplacingOccurrencesOfString:@"ó" withString:@"o"];
str = [str stringByReplacingOccurrencesOfString:@"'" withString:@"'"];
return str;
}
вызовите этот метод для замены строки, отправив строку в качестве параметра.
Чтобы расширить ответ Мэтта Стивенса (поскольку я пока не могу комментировать), вам не нужно комментировать _GTMDevLog, так как он намеренно настроен так, что вы можете # определить его сами, что хотите.
Вы можете просто использовать NSMutableString
"s replaceOccurrencesOfString:withString:options:range:
метод?