使用Jsoup删除元素不起作用

时间:2013-12-12 15:53:00

标签: java html css jsoup

我想删除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
    }
}

我真的不知道我的错在哪里。请帮帮我。

提前感谢任何建议!!

1 个答案:

答案 0 :(得分:3)

您要从Element对象中删除Document,而不是Elements集合。因此,当您第二次打印每个Element时,它们仍在Elements集合中,但不在Document中。

Jsoup类ElementCommentDocument等等都是Node类的子类,它代表DOM树中的一个节点。方法remove()是来自Node类的继承方法,它从DOM树中删除节点。