使用Jsoup过滤HTML标签,获取纯文本

您所在的位置:网站首页 java处理html标签 使用Jsoup过滤HTML标签,获取纯文本

使用Jsoup过滤HTML标签,获取纯文本

2023-12-30 00:04| 来源: 网络整理| 查看: 265

通常情况下,把HTML富文本内容保存到数据库字段时,会自带一些HTML标签,然后将这些内容再次显示到网页上时,就能够保持文本在富文本中编辑时的HTML格式。

这种做法毫无疑问是没有问题的,但有的时候,我们需要将HTML标签去掉,只取纯文本内容。这个时候,该怎么做呢?

比如说有这样一段简单的HTML富文本内容,带有p标签(它表示p标签内部的文本是一个段落),但有的时候,我们在显示该内容的缩略文本时,并不需要p标签,也就是说,只想显示“你好呀,沉默王二,请坚持写作!”

注:通常情况下,HTML文本内容要比只有p标签这个复杂!

你好呀,沉默王二,请坚持写作!

假如要你来实现这个需求,你能想到的解决办法是什么呢?

1)存入数据库时,既存入

你好呀,沉默王二,请坚持写作!

,也存入你好呀,沉默王二,请坚持写作!在取的时候按需索取。

2)存入数据库时,只存入

你好呀,沉默王二,请坚持写作!

,在显示的时候,如果需要p标签,就不过滤p标签;如果不需要p标签,就通过一定的方法过滤掉p标签。过滤的时机有三处,其一是从数据库取数据时通过SQL过滤(但这会增加数据库压力);其二是在服务器端向客户端返回数据时过滤掉HTML标签,再回传给客户端;其三是在view视图呈现时调用formatter进行过滤,我认为这种方法也是最好的。

第一种方案的解决办法, 比如说使用UEditor,如下图。

这里写图片描述

使用UEditor富文本编辑器的话,可以直接通过UEditor提供的两个API将带有HTML标签的内容和没有HTML标签的纯文本内容获取到。

第二种方案的解决办法,通过SQL过滤的方法我暂时还不会,另外它不是最优的解决方案。

第二、第三的区别在于契机不同,但服务器端过滤HTML标签的方法其实是一样的。

首先告诉大家的解决方案是使用jsoup!

官网地址为:https://jsoup.org/ 截图如下:

这里写图片描述

如果是传统项目的话,在「getting started」处下载jar包添加到项目构建路径下; 如果是Maven 构建项目的话,把一下内容粘贴到pom.xml 文件的依赖节点下。

org.jsoup jsoup 1.11.2

原HTML富文本内容和使用jsoup过滤后的结果如下图所示:

这里写图片描述

具体代码实现非常简单,只有一行代码:

System.out.println(Jsoup.parse(unsafe).text());

使用jsoup过滤的结果是100%的纯文本。而使用一般使用正则表达式去HTML的做法在一定情况并不能保证是绝对的纯文本。

public static String replaceHtml(String html) { if (isBlank(html)){ return ""; } String regEx = ""; Pattern p = Pattern.compile(regEx); Matcher m = p.matcher(html); String s = m.replaceAll(""); return s; }

如果想使用formatter,请参照JSP标签库Taglib之自定义function篇,轻松实现日期格式化。

最近,有不少读者问我是怎么学习的,那我干脆就把我看过的一些优质书籍贡献出来:

计算机基础入门推荐:《程序是怎样跑起来的》、《网络是怎样连接的》、《计算机是怎样跑起来的的》

进一步认识计算机网络:《计算机网络:自顶向下》、《图解http》

数据结构+算法入门:《大话数据结构》、《阿哈算法》

算法进阶:《算法第四版》、《编程珠玑》

由于我是 Java 技术栈的,顺便推荐几本 Java 的书籍,从左到由的顺序看到

Java:《Java核心技术卷1》、《编程思想》、《深入理解Java虚拟机》、《effective Java》、《Java并发编程的艺术》

数据库:《mysql必知必会》、《MySQL技术内幕:InnoDB存储引擎》

就先介绍这么多,这些都是最基础最核心的,希望对那些不知道看什么书的同学有所帮助。

对了,我介绍的这些书籍,已经顺便帮你整理好了,你可以在我的原创微信公众号『沉默王二』回复『书籍』获取哦

有收获?希望老铁们来个三连击,给更多的同学看到这篇文章

1、老铁们,关注我的原创微信公众号「沉默王二」,专注于有趣有益的程序人生,保证你看完有所收获,不信你打我。

2、给二哥点个赞呗,可以让更多的人看到这篇文章,顺便激励下我,嘻嘻。

作者info 作者:沉默王二,CSDN 2019年度博客之星,《Web全栈开发进阶之路》作者 原创公众号:『沉默王二』,已写了 250 多篇文章,专注于有趣的 Java 技术和有益的程序人生,期待你的关注。 转载说明:务必注明来源(注明:来源于公众号:沉默王二, 作者:沉默王二)



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3