首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jsoup只过滤掉html到文本的一些标签

Jsoup只过滤掉html到文本的一些标签
EN

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

有谁能告诉我一些关于过滤html为文本/字符串的建议吗?我尝试过调用Document的text()。但是所有标签/元素都会被过滤掉。我的目标是过滤一些指定的标签。

例如:我有这样的html文本:

代码语言:javascript
复制
<div>hello<p>world</div>,<table><tr><td>xxx</td></tr>

要获得结果:

代码语言:javascript
复制
<div>hello<p>world</div>,xxx 

它有过滤过的标签。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-08 03:15:55

我现在不能对此进行测试,但我认为您应该编写一个递归函数来遍历树并根据条件打印每个节点。以下是它可能看起来是什么样子的示例,但我希望您必须对其进行修改,以更精确地满足您的需求。

代码语言:javascript
复制
Document doc = JSoup.parse(page_text);
recursive_print(doc.head());
recursive_print(doc.body());

...

private static Set<String> ignore = new HashSet<String>(){{
  add("table");
  ...
}};
public static void recursive_print(Element el){
   if(!ignore.contains(el.className()))
     System.out.println(el.html());
   for(Element child : el.children())
     recursive_print(child);
}
票数 1
EN

Stack Overflow用户

发布于 2018-05-18 03:25:22

您可以使用Whitelist来实现此目标。例如:

Whitelist whiteList = new Whitelist();

whiteList.addTags("div", "p", "td");

这意味着所有其他标签都将被删除。

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

https://stackoverflow.com/questions/17492396

复制
相关文章

相似问题

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