java - Jsoup 不会剥离转义的 html 字符

标签 java json jsoup

我有一个标准的 json 结构,里面有这样的内容

<p>这是html内容<\/p>

我正在使用 jsoup 来剥离标签。但是我得到的输出如下

这是html内容</p>

Jsoup 无法删除具有转义字符的结束标记。

注意:标准的json数据格式会考虑/作为特殊字符并转义它

java 中是否有可用的标准 json 库可以做到这一点?

最佳答案

<\/p>不是有效的结束标签。 Jsoup 尝试根据 W3 标准解释 HTML。 <p>元素并不总是需要结束标签。请参阅https://developer.mozilla.org/en-US/docs/Web/HTML/Element/p

由于您没有提供完整的 HTML,我无法告诉您该 HTML 是否有效。然而,JSoup 也尝试充分利用无效的 HTML。 (因此该库的名称为:JSoup,充分利用了 HTML-Soup)

无论如何,如果您找到<\/p>在 HTML 中,它实际上是有效内容,而不是结束标记,因为正确的结束标记是 </p>

所以 JSoup 所做的正是应该发生的。

我认为您可能想分析 HTML 的源代码。它似乎经过了一些处理,改变了 HTML 的有效性。我想你应该尝试使用原始 HTML 来提供 JSoup。

据我所知,您的 HTML 是 JSON 格式字符串的一部分。也许您应该尝试分析如何进一步处理该字符串以再次从中生成有效的 HTML。重复此过程,然后将其提供给 JSoup

关于java - Jsoup 不会剥离转义的 html 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49327104/

相关文章:

java - 哪个类加载器负责将认可的 dir jar 加载到 JVM 中?

java - SSL+ Java 8 + OpenJDK + SNI + HTTPClient = 握手失败

java - JSOUP 无法在某些网站上运行

java - 安卓时间排行

java - 如何在 android 上使用带有后台服务的 socket.io?

json - 如何将 po (gettext) 转换为 json?

java - 谷歌应用引擎中的 Json

javascript - JSON - 对象数组到数组对象

java - Jsoup 不是选择器不返回结果

Java 网络爬虫看到验证码