我想删除 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
}
}
我真的不知道我的错在哪里。请帮帮我。
提前感谢您的任何建议!!
最佳答案
您正在从它们所在的 Document
对象中移除 Element
,而不是 Elements
集合。因此,当您第二次打印每个 Element
时,它们仍在 Elements
集合中,但不在 Document
中。
Jsoup类Element
、Comment
、Document
等都是Node类的子类,代表DOM中的一个节点树。 remove()
方法是 Node
类的继承方法,它从 DOM 树中删除节点。
关于java - 使用 Jsoup 删除元素不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20548029/