如何使用Jsoup从html元素中删除所有内联样式和其他属性?

如何使用Jsoup从html元素中删除所有内联样式和其他属性?,第1张

概述如何使用Jsoup从html元素中删除所有内联样式和其他属性(class,onclick)?样本输入:<divstyle="padding-top:25px;"onclick="javascript:alert('hi');">Thisisasamplediv<spanclass='sampleclass'>Thisisasamplespan</span>

如何使用Jsoup从HTML元素中删除所有内联样式和其他属性(class,onclick)?

样本输入:

<div  onclick="JavaScript:alert('hi');">This is a sample div <span class='sampleclass'> This is a sample span </span></div>

样本输出:

<div>This is a sample div <span> This is a sample span </span> </div>

我的代码(这是正确的方法还是其他更好的方法?)

document doc = Jsoup.parse(HTML);Elements el = doc.getAllElements();for (Element e : el) {    Attributes at = e.attributes();    for (Attribute a : at) {            e.removeAttr(a.getKey());        }}

解决方法:

是的,一种方法确实是迭代元素并调用removeAttr();

使用Jsoup的另一种方法是使用WhiteList类(参见docs),该类可以与Jsoup.clean()函数一起使用,以从文档中删除任何未指定的标记或属性.

例如:

String HTML = "<HTML><head></head><body><div style='padding-top:25px;' onclick='JavaScript.alert('hi');'>This is a sample div <span class='sampleclass'>This is a simple span</span></div></body></HTML>";WhiteList wl = WhiteList.simpleText();wl.addTags("div", "span"); // add additional Tags here as necessaryString clean = Jsoup.clean(HTML, wl);System.out.println(clean);

将导致以下输出:

11-05 19:56:39.302: I/System.out(414): <div>11-05 19:56:39.302: I/System.out(414):  This is a sample div 11-05 19:56:39.302: I/System.out(414):  <span>This is a simple span</span>11-05 19:56:39.302: I/System.out(414): </div>
总结

以上是内存溢出为你收集整理的如何使用Jsoup从html元素中删除所有内联样式和其他属性?全部内容,希望文章能够帮你解决如何使用Jsoup从html元素中删除所有内联样式和其他属性?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1114730.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存