【问题标题】:Jsoup removes quotes and apostrophesJsoup 去掉引号和撇号
【发布时间】:2023-03-06 18:48:01
【问题描述】:

我有类似的东西

Whitelist whitelist = new Whitelist();
whitelist.addTags("p", "i", "b", "em", "strong", "u");
String content = Jsoup.clean(data.html(), whitelist);

在我的代码中。但是 Jsoup 库删除了 " 和 '。我该如何防止这种情况发生。

例如=

天气晴朗。

结果 = 它?晴天。

【问题讨论】:

  • 你能给出一个你传递给清理的示例html以及清理的结果吗?
  • 被删除的引号在哪里?在 HTML 中,属性值的引号?
  • 我猜你将不得不跳过引号。像“\”p\“”之类的东西。只是一个想法。

标签: java html-parsing jsoup


【解决方案1】:

您正在使用 data.html() 。这是 Element 类的 API 讲述的内容:Element API

Retrieves the element's inner HTML. E.g. on a <div> with one empty <p>, would return <p></p>. (Whereas Node.outerHtml() would return <div><p></p></div>.) 

所以你应该使用方法 outerHtml() 代替:

String content = Jsoup.clean(data.outerHtml(), whitelist);

这里也是有用示例的另一个链接。该示例包含这两种方法,您可以看到区别:Jsoup Attribute text and HTML example

至于其他问题(引用变成问号),我认为这是编码和字符集的问题,因为它没有发生在我的电脑上。检查源 html 文件的编码,并尝试在 Jsoup 中使用匹配的字符集对其进行初始解析。

【讨论】:

    猜你喜欢
    • 2020-12-13
    • 1970-01-01
    • 2019-06-13
    • 2020-08-27
    • 1970-01-01
    • 2014-04-07
    • 1970-01-01
    • 2019-04-23
    • 2023-03-14
    相关资源
    最近更新 更多