一尘不染

Jsoup.clean无需添加html实体

java

我正在使用清除不需要的HTML标签(例如<script>)中的一些文本

String clean = Jsoup.clean(someInput, Whitelist.basicWithImages());

问题是,它取代例如å&aring;(这会导致麻烦的我,因为它不是“纯XML”)。

例如

Jsoup.clean("hello å <script></script> world", Whitelist.basicWithImages())

产量

"hello &aring;  world"

但我想

"hello å  world"

有没有简单的方法可以做到这一点?(即比转换&aring;å结果更简单。)


阅读 598

收藏
2020-12-03

共1个答案

一尘不染

您可以配置Jsoup的转义模式:使用EscapeMode.xhtml将为您提供无实体输出。

这是一个完整的代码段,可以接受str作为输入,并使用进行清理Whitelist.simpleText()

// Parse str into a Document
Document doc = Jsoup.parse(str);

// Clean the document.
doc = new Cleaner(Whitelist.simpleText()).clean(doc);

// Adjust escape mode
doc.outputSettings().escapeMode(EscapeMode.xhtml);

// Get back the string of the body.
str = doc.body().html();
2020-12-03