如何在没有属性字符串的情况下将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 :(得分:0)
假设您可以访问某种类型的UIWEbView
,您可以执行一些javascript来检索包含您想要字符串化的HTML的元素的.text()
吗?
答案 1 :(得分: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);
它可能会帮助你:)
答案 2 :(得分: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解析器。