Java过滤HTML标签,获取纯文本

来源:转载

有这样一个需求:

要将富文本内容保存到MySQL数据的一个字段中,比如保存的内容是:

<p>你好呀,沉默王二,坚持写作吧!</p>

然后需要从该内容中做模糊查询,比如条件是p。

如果对<p>你好呀,沉默王二,坚持写作吧!</p>字段内容不做任何处理,就直接like ‘%p%’查询的话,是有结果的。

但其实不应该有结果,因为真正的内容只是“你好呀,沉默王二,坚持写作吧!”,是没有p的。

你能想到的解决办法是什么呢?

1)存两个结果,<p>你好呀,沉默王二,坚持写作吧!</p>用来展示,“你好呀,沉默王二,坚持写作吧!”用来做查询。

2)存一个结果,查询的时候通过MySQL的存储过程+正则表达式将<p>你好呀,沉默王二,坚持写作吧!</p>中的HTML标签(p)过滤掉。

3)存一个结果,利用Java过滤掉<p>你好呀,沉默王二,坚持写作吧!</p>中的HTML标签(p),然后再通过Java做模糊查询。

第二种结果我认为最好,但是我还不会。

于是我先调查了第一种方案,有两种做法:

1)使用UEditor。

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

2)Jsoup

将带有HTML标签的内容通过jsoup转换掉,将获取到的纯文本内容存储。

具体代码实现如下:

 Whitelist addTags = new Whitelist(); String safe = Jsoup.clean(unsafe, addTags); System.out.println(safe); System.out.println(Jsoup.parse(unsafe).text());

原创不易,快来关注:

分享给朋友:
您可能感兴趣的文章:
随机阅读: