Objective c 我是否以最佳方式解析html源代码?
我想从a中提取正文段落并将其存储到字符串中 首先,我使用Objective c 我是否以最佳方式解析html源代码?,objective-c,parsing,nsstring,performance,Objective C,Parsing,Nsstring,Performance,我想从a中提取正文段落并将其存储到字符串中 首先,我使用 NSString *sourceCode = [NSString stringWithContentsOfURL:[NSURL URLWithString:currentLink] encoding:NSUTF8StringEncoding error:&error]; 正文段落开始于之后,结束于 所以我打算像这样把绳子分开 NSString *startingPt = @"<!-- (START) Pagination
NSString *sourceCode = [NSString stringWithContentsOfURL:[NSURL URLWithString:currentLink] encoding:NSUTF8StringEncoding error:&error];
正文段落开始于
之后,结束于
所以我打算像这样把绳子分开
NSString *startingPt = @"<!-- (START) Pagination Content Wrapper -->";
NSString *endingPt = @"<!-- (END) Pagination Content Wrapper -->";
NSString *sub = [sourceCode substringFromIndex:NSMaxRange([str rangeOfString:startingPt])];
sub = [sourceCode substringToIndex:[s rangeOfString:endingPt].location;
NSString*startingPt=@”;
NSString*endingPt=@;
NSString*sub=[sourceCode substringfromfromindex:NSMaxRange([str rangeOfString:startingPt]);
sub=[sourceCode substringToIndex:[s rangeOfString:endingPt]。位置;
然后我将使用stringByReplacingOccurrencesOfString:with字符串:
将剩余的html标记替换为@“
有更好的方法来实现我的目标吗?在获得子字符串删除开始和结束后,您可以简单地使用转义html标记,这是实现html编码、解码等的一个非常好的类别,主要是您可以将其用于NSString实例,无需为此创建单独的对象 在这里你可以找到更多关于它的讨论 这些是在那篇文章中建议的方法&我喜欢
- (NSString *)stringByConvertingHTMLToPlainText;
- (NSString *)stringByDecodingHTMLEntities;
- (NSString *)stringByEncodingHTMLEntities;
- (NSString *)stringWithNewLinesAsBRs;
- (NSString *)stringByRemovingNewLinesAndWhitespace;
您必须在删除HTML标记之前找到它们。除非您知道此系统需要使用的标记数量有限,否则不应在代码中硬编码它们的列表。使用-stringByReplacingOccurrences…,您需要一个精确的字符串,包含所有参数ID和类标记等。,这使得它更容易改变 除非您打算使用vishy建议的第三方扩展,看起来它可以满足您的需要,否则您必须执行以下操作: 1) 查找“”的第一个匹配项 4) 看看那是不是逃脱了 5) 如果没有,请为标记(从“”)创建NSRange,并使用-stringByReplacingCharactersInRange将其删除
6) 重复此操作,直到找不到任何未替换的“如您所述,存在随机数量的空白。是否无法消除它们?请使用[myString stringByTrimmingCharactersInSet:[NSCharacterSet Whitespace and NewLineCharacterSet]];我已经补充了这一点。它只删除了正文开头之前和之后的空格,而不删除段落之间的空格