我正在解析一些HTML,我需要得到所有的innerHTML of <body />。我就是这样做的:
TFHpple *doc = [[TFHpple alloc] initWithHTMLData:[NSData dataWithContentsOfFile:sectionFilePath]];
TFHppleElement *body = [doc searchWithXPathQuery:@"//body"][0];
NSString *bodyHTML = body.raw;然而,这将返回:
<body>stuff inside body</body>而不是仅仅:
stuff inside body问题:除了元素本身的标记之外,有任何方法可以获得元素的纯内部HTML吗?
我想出了这个方法,但我觉得我在这里重新发明了轮子。这种方法也很慢。
TFHppleElement *child;
for(int i = 0; i<body.children.count; i++){
child = (TFHppleElement*)body.children[i];
if(child.raw != nil) [bodyHTML appendString:child.raw];
else if(child.content != nil) [bodyHTML appendString:child.content];
}发布于 2013-05-18 21:10:45
试试这个..。
NSURL *url = [NSURL URLWithString: URL_HERE];
NSData *htmlData = [NSData dataWithContentsOfURL:url];
TFHpple *parser = [TFHpple hppleWithHTMLData:htmlData];
NSString *xpathQueryString = @"//body";
NSArray *nodes = [parser searchWithXPathQuery:xpathQueryString];
for (TFHppleElement *element in nodes) {
lable.text = [[element firstChild] content];
}发布于 2014-04-17 09:22:48
我也有同样的问题要解决,最后我做的是得到element.raw格式的html格式,然后用这里描述的方法之一删除标记:
Remove HTML Tags from an NSString on the iPhone
我使用了stipHtml函数。
https://stackoverflow.com/questions/16628894
复制相似问题