繁体   English   中英

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

[英]How to keep link title attribute with jsoup?

使用Jsoup.clean() ,jsoup可以从以下位置转换HTML链接的title属性:

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

我试图用EscapeMode添加OutputSettings

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团队标记为“无法解决”)。

这里没有错误。

进行序列化时(即在您的示例中,当您打印出XML / HTML时),我们转义了尽可能少的字符。 这就是为什么>不转义为>的原因。 因为它在带引号的属性中,所以没有任何疑问,因为它正在关闭标签,因此不会被转义。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM