java - 如何使用jsoup保留链接标题属性?

标签 java jsoup

使用Jsoup.clean() ,jsoup 变成 title HTML 链接的属性来自:

<a href="" title="test &lt;br /&gt;">TEST</a>

进入:

<a href="" title="test <br />">TEST</a>

这是演示应用程序:

Whitelist whitelist = new Whitelist();
whitelist.addTags("a");
whitelist.addAttributes("a", "href", "title");

String input = "<a href=\"\" title=\"test &lt;br /&gt;\">TEST</a>";
System.out.println("input: " + input);
String output = Jsoup.clean(input, whitelist);
System.out.println("output: " + output);

打印:

input: <a href="" title="test &lt;br /&gt;">TEST</a>
output: <a href="" title="test <br />">TEST</a>

我尝试添加OutputSettingsEscapeMode :

OutputSettings outputSettings = new OutputSettings();
outputSettings.escapeMode(EscapeMode.xhtml);

EscapeMode.baseEscapeMode.extend没有影响。 EscapeMode.xhtml打印以下内容:

input: <a href="" title="test &lt;br /&gt;">TEST</a>
output: <a href="" title="test &lt;br />">TEST</a>

知道 jsoup 如何不操纵 title标签?

最佳答案

这是一个已知问题/行为:https://github.com/jhy/jsoup/issues/684 (jsoup 团队标记为“无法修复”)。

There's not a bug here.

When serializing (i.e. in your example when you're printing out XML/HTML), we escape as few characters as necessary. That is why the > is not escaped to >; because it's in a quoted attribute, there's no ambiguity that it's closing a tag, so it doesn't get escaped.

关于java - 如何使用jsoup保留链接标题属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43279787/

相关文章:

java - 为什么我的 java 中的 arraySort 无法正常工作?

java - 超时如何在 Hystrix 中与 Observables 一起工作?

java - JSoup 抓取 HTML 值返回 null?

java - 使用 Java 抓取/提取,结果来自 coinmarketcap.com

java - 是否可以通过Crawler4j检索网站内容?

jsoup - 如何使用 Jsoup 保留新行?

java - SSO - 从 Windows 上的 Java 客户端到 Linux 上的 Java 服务器

java - 如何使用 hibernate 更新实体

java - 任意预设精度小数(几乎像 BigDecimal)

java - JSOUP 从重定向链接中获取 html 内容