2013-12-12 90 views
3

我想刪除html文件頭部的一些元素(CSS標籤)。 我試着這樣說:用Jsoup去除元素不起作用

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

我真的不知道我的故障。請幫助我。

在此先感謝您的任何建議!

回答

3

您將從Document對象中刪除Element,而不是Elements集合。因此,當您第二次打印每個Element時,它們仍處於Elements集合中,但不在Document中。

Jsoup類Element,CommentDocument等都是Node類的所有子類,它代表了DOM樹中的一個節點。方法remove()Node類的繼承方法,它從DOM樹中刪除節點。

+2

Doh!我還沒有到達那裏。做得好。 @OP:在第二次循環之前再次執行'headChildren = head.children();'來查看區別。 –

+0

非常感謝,先生! –