当前位置: 首页 > 知识库问答 >
问题:

从html到文本只过滤掉一些标签

高修伟
2023-03-14

任何一位jsoup大师都能告诉我一些将html过滤成文本/字符串的建议吗?我已尝试调用文档的text()。但所有标记/元素都将被过滤。我的目标是过滤一些指定的标记。

例如:我有HTML文本:

<div>hello<p>world</div>,<table><tr><td>xxx</td></tr>

得到结果:

<div>hello<p>world</div>,xxx 

它已过滤标记。

共有2个答案

孙风畔
2023-03-14

您可以使用白名单来实现此目标。例如:

白名单白名单=新白名单()<白名单。添加标签(“div”、“p”、“td”)

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

夏侯俊美
2023-03-14

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

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);
}
 类似资料:
  • 问题内容: 因为正则表达式使我感到恐惧,所以我试图找到一种方法来删除所有HTML标记并从Python中的字符串解析HTML实体。 问题答案: 使用lxml是最适合python的xml / html库。 如果您只想清理html,请查看lxml.html.clean模块

  • 问题内容: 我有一些要从json文件加载的html数据。 我通过在应用程序中使用ngSanitize并使用ng-bind-html来显示此html数据。 现在我想从标准转换json blob中的任何链接 至: 。 所以我在json文件上做了一些regExp来转换链接,但是出于某种原因,但是ng-bind-html过滤掉了ng- click的输出,我不知道为什么。是否应该这样做,如果可以,可以禁用此

  • 在我的ElasticSearch数据集中,我们有用句点分隔的唯一ID。样本编号可能类似于C.123.5432 这就是我将其复制到的字段(它也有ngram分析器): 从某种意义上说,这是我用来查看搜索是否有效的命令(请注意它正在搜索“meta_data”字段):

  • 我有一个以下格式的文本文件。 第一行包括“USERID”=12345678,其他行包括每个应用程序的用户组:例如: 用户T-number T12345的用户对APP1和APP2具有WRITE访问权限,对APP1具有READ-ONLY访问权限。 T-Number只是另一种ID。 00001, 00002等都是序号,可以忽略。 我需要做一些过滤,并将包含USERID的行与所有具有用户组的行合并,将t-

  • 问题内容: 假设您有一些用Selenium抓取并用BeautifulSoup解析的html源: 有没有一种方法可以从html代码或汤对象中删除所有具有以下内容的元素: 1.)html标记源中的属性(即) 要么 2.)在页面的CSS中具有该属性 问题答案: 我想我记得曾经处理过这样的网站-IP地址是通过多个HTML元素在内部表示的,其中一些是通过样式隐藏的,有些则具有使它们不可见的适当CSS类。从这

  • 本文向大家介绍ASP.NET过滤HTML标签只保留换行与空格的方法,包括了ASP.NET过滤HTML标签只保留换行与空格的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了ASP.NET过滤HTML标签只保留换行与空格的方法。分享给大家供大家参考。具体分析如下: 自己从网上找了一个过滤HTML标签的方法,我也不知道谁的才是原创的,反正很多都一样。我把那方法复制下来,代码如下: 以上代码是