如何使用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元素中删除所有内联样式和其他属性?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)