java - 使用 Jsoup 删除元素不起作用

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

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

提前感谢您的任何建议!!

最佳答案

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

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

关于java - 使用 Jsoup 删除元素不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20548029/

相关文章:

html - 图像按列对齐

php - 在我的 WordPress 导航菜单中插入设计元素

java - 实体之间没有关系的 Hibernate Criteria 查询

java - 如何获取给定时区上一个/上一个星期六的日期

java - 在不同的事件循环上为不同的 webflux 端点提供服务

Java/XML问题

javascript - 在 Bootstrap 部分中随机化图像

html - 问题在复选框中间居中文本

jQuery .hover() 和 .click() 不工作

javascript - 我的数据库中有两个标题,我需要一个 while 循环,我想显示多折叠标题我在数据库中有多少标题记录