【问题标题】:Removing Element with Jsoup doesn't work使用 Jsoup 删除元素不起作用
【发布时间】:2013-12-31 03:09:16
【问题描述】:

我想删除 html 文件头部的一些元素(CSS--tags)。 我试过这样:

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

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

提前感谢您的任何建议!

【问题讨论】:

    标签: java html css jsoup


    【解决方案1】:

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

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

    【讨论】:

    • 噢!我还没有到那里。做得好。 @OP:只需在第二个循环之前再次执行headChildren = head.children(); 即可查看差异。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-18
    相关资源
    最近更新 更多