我想删除html文件头部的一些元素(CSS - 标签)。 我试过这样的话:
Document doc = Jsoup.parse(htmlString);
Element head = doc.head();
Elements headChildren = head.children();
for (Element el : headChildren) {
if (el.attr("type").contains("text/css") || el.attr("rel").contains("stylesheet")){
Log.d("HTML", "elements-before: " + el.nodeName()); //Log prints 7 elments
el.remove();
}
}
for (Element el : headChildren ) {
if (el.attr("type").contains("text/css") || el.attr("rel").contains("stylesheet")){
Log.d("HTML", "elements-after: " + el.nodeName()); //Log prints 7 elments again
}
}
我真的不知道我的错在哪里。请帮帮我。
提前感谢任何建议!!
答案 0 :(得分:3)
您要从Element
对象中删除Document
,而不是Elements
集合。因此,当您第二次打印每个Element
时,它们仍在Elements
集合中,但不在Document
中。
Jsoup类Element
,Comment
,Document
等等都是Node类的子类,它代表DOM树中的一个节点。方法remove()
是来自Node
类的继承方法,它从DOM树中删除节点。