如何防止 Jsoup 转义 html?

Posted

技术标签:

【中文标题】如何防止 Jsoup 转义 html?【英文标题】:How to prevent Jsoup from unescaping html? 【发布时间】:2021-09-10 00:20:53 【问题描述】:

我正在使用 Jsoup 解析一个 html 字符串,以便仅提取文本,并希望获得确切的文本,但是当我解析包含转义字符的字符串时,Jsoup 将它们转义。 例如 - 如果我解析

<p>Let's try</p>

Jsoup 返回

<p>Let's try</p>

我广泛搜索解决方案并尝试使用 doc.outputSettingscharsetescapeMode 的不同选项,但无法让 Jsoup 不逃避 html 特殊字符

【问题讨论】:

为什么重要?无论哪种方式,HTML 都具有完全相同的含义。 提取文本后,我正在对其进行一些操作,然后我想在原始字符串中查找和替换。由于未转义,我找不到提取的文本 【参考方案1】:

从this comment和现在的EscapeMode documentation来看,Jsoup是做不到的。

我永远不会实现 EscapeMode.none,因为它只会导致解析树损坏。

【讨论】:

以上是关于如何防止 Jsoup 转义 html?的主要内容,如果未能解决你的问题,请参考以下文章

如何防止 Django 基本内联自动转义

[JavaWeb]_[初级]_[对Html特殊符号进行转义防止XSS攻击和反转义]

[JavaWeb]_[初级]_[对Html特殊符号进行转义防止XSS攻击和反转义]

json_encode如何防止汉字转义成unicode

HTML-Entity 转义以防止 XSS

在带有刀片模板的表单中使用 laravelcollective/html 时防止转义单引号