【问题标题】:Jsoup is not stripping escaped html charactersJsoup 不会剥离转义的 html 字符
【发布时间】:2018-03-17 20:42:00
【问题描述】:

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

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

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

这是html内容</p>

Jsoup 无法去除带有转义字符的结束标签。

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

在 java 中有什么标准的 json 库可以做到这一点?

【问题讨论】:

  • 你能贴出你的去除标签的代码吗?

标签: java json jsoup


【解决方案1】:

<\/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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-30
    • 2016-11-14
    • 1970-01-01
    • 1970-01-01
    • 2014-02-22
    • 2011-05-02
    • 1970-01-01
    相关资源
    最近更新 更多