这是 Cocoa+NSString 解决方案(工作+测试)。您会看到,当您使用这样的自定义解析器时,唯一真正的技巧是如何找到“结束”点。事实上,你不能只是去 "" 因为其他 div 在中间打开,所以你的解析器会在你正在寻找的内容结束之前停止。我显然不是说没有其他方法可以使用更复杂的 XML 解析器。但是网页并不那么容易解析,它们的代码并不总是完美的......而且这很简单并且有效(您仍然应该考虑获取 URL 内容的另一种方式,而不是 stringWithContentsOfURL: 这不是异步的):
NSString *originalString = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://www.makepartsfast.com/2012/09/4337/more-3d-printing-in-metals-ex-one-introduces-the-m-flex-3d-printing-system/"] encoding:NSUTF8StringEncoding error:nil];
NSScanner *scanner = [NSScanner scannerWithString:originalString];
NSString *extractedString = nil;
[scanner scanUpToString:@"<div id=\"content\">" intoString:nil];
[scanner scanString:@"<div id=\"content\">" intoString:nil];
[scanner scanUpToString:@"<div style=\"clear:both;\">" intoString:&extractedString];
if (extractedString)
{
// string was extracted
NSLog(@"%@", extractedString);
}