首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >没有元素标记的TFHpple -获取元素HTML?

没有元素标记的TFHpple -获取元素HTML?
EN

Stack Overflow用户
提问于 2013-05-18 21:00:27
回答 2查看 2.4K关注 0票数 0

我正在解析一些HTML,我需要得到所有的innerHTML of <body />。我就是这样做的:

代码语言:javascript
复制
TFHpple *doc = [[TFHpple alloc] initWithHTMLData:[NSData dataWithContentsOfFile:sectionFilePath]];
TFHppleElement *body = [doc searchWithXPathQuery:@"//body"][0];

NSString *bodyHTML  = body.raw;

然而,这将返回:

代码语言:javascript
复制
<body>stuff inside body</body>

而不是仅仅:

代码语言:javascript
复制
stuff inside body

问题:除了元素本身的标记之外,有任何方法可以获得元素的纯内部HTML吗?

我想出了这个方法,但我觉得我在这里重新发明了轮子。这种方法也很慢。

代码语言:javascript
复制
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];
}
EN

回答 2

Stack Overflow用户

发布于 2013-05-18 21:10:45

试试这个..。

代码语言:javascript
复制
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];
}
票数 0
EN

Stack Overflow用户

发布于 2014-04-17 09:22:48

我也有同样的问题要解决,最后我做的是得到element.raw格式的html格式,然后用这里描述的方法之一删除标记:

Remove HTML Tags from an NSString on the iPhone

我使用了stipHtml函数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16628894

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档