Jsoup并没有剥离转义的html字符

时间:2018-03-16 18:11:03

标签: java json jsoup

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

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

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

这是html内容</p>

Jsoup无法剥离已转义字符的结束标记。

注意:标准的json数据格式会将/视为特殊字符并将其转义

java中可用的任何标准json库都能做到这一点吗?

1 个答案:

答案 0 :(得分:0)

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

由于您没有提供完整的HTML,我无法告诉您HTML是否有效。但是,JSoup还试图充分利用无效的HTML。 (因此库的名称:JSoup,充分利用HTML-Soup)

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

所以JSoup所做的就是应该发生的事情。

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

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