[英]How to parse html text into plain text without attributed string?
How do I parse html text into plain text without attributed string? 如何将html文本解析为纯文本而没有属性字符串?
This is my code: 这是我的代码:
(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;
}
假设您可以访问某种UIWEbView
,则可以执行一些JavaScript来检索包含要字符串化的HTML的元素的.text()
。
You can use the below code and get from 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);
It maybe help you :) 它可能对您有帮助:)
If using a library is an option you could try HTMLKit . 如果可以选择使用库,则可以尝试HTMLKit 。
For example, given the following HTML: 例如,给定以下HTML:
<p>Some <b>text</b> to <em>extract</em></p>
one way to parse it to plain text would be: 将其解析为纯文本的一种方法是:
// 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'
Let me know if you need further help. 让我知道您是否需要进一步的帮助。
If your HTML is simple and parsing it is not the core functionality of your app/project, then maybe HTMLKit is not for you, since it is a full-fledged HTML parser.
如果您的HTML很简单,并且解析不是您的应用程序/项目的核心功能,那么HTMLKit可能不适合您,因为它是成熟的HTML解析器。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.