【问题标题】:Jsoup efficient way to remove html elements and children'sJsoup去除html元素和子元素的高效方法
【发布时间】:2013-11-24 16:39:27
【问题描述】:

我想删除 html divtable 表格标签以及其中的任何内容(孩子),最好的方法是什么?

我尝试像这样遍历文档但它不起作用,在 Jsoup 文档中它说 node.remove() 从 DOM 和他的孩子的元素中删除元素:

doc.traverse(new NodeVisitor() {
                @Override
                public void head(Node node, int i) {

                }

                @Override
                public void tail(Node node, int i) {
                    //Log.i(TAG,"node: "+node.nodeName());
                    if( node.nodeName().compareTo("table") == 0 ||
                            node.nodeName().compareTo("div") == 0 )
                       node.remove();

                }
            });

【问题讨论】:

    标签: java html jsoup


    【解决方案1】:
    Document doc = Jsoup.parse(html);
    doc.select("table *").remove();
    

    【讨论】:

      【解决方案2】:

      你试过Elements类的remove()函数吗?

      Document doc = Jsoup.parse(html);
      doc.select("div").remove();
      doc.select("table").remove();
      

      这应该选择并删除所有 <div><table> 元素。

      【讨论】:

      • 我认为从元素类中删除不会删除孩子的。不过我会再检查一次。
      • @SergioSerra 它对我来说是一个简单的例子(例如,我有一些带有文本和段落的 div 以及带有一些行的表格),但在某些情况下它可能不起作用。
      • 你说得对,它就像你说的那样工作,我犯了一个愚蠢的错误,没有像我应该的那样从文档中获取 html,之前没有注意到它。现在可以了。谢谢
      • @SergioSerra 哦,好的,谢谢你让我知道,很高兴它对你有用!
      猜你喜欢
      • 2015-01-03
      • 1970-01-01
      • 2010-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-31
      • 1970-01-01
      相关资源
      最近更新 更多