1
回答
使用Jsoup如何删除网页中的文本,求大能指点,谢谢!
华为云实践训练营,热门技术免费实践!>>>   
我想解决的是删除一个网页中的所有文本,只保留下整体标签框架就可以了,我用写了一个递归,但每当我删除一个节点,发现删除掉的这个节点的父节点的size减一了,导致不能遍历完成程序就结束了,我的程序如下:
import java.io.File;
import java.io.IOException;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Node;

public class Test2 {
    public static void main(String[] args) throws Exception {
        File input = new File("book1.xml");
        Document doc=Jsoup.parse(input,"UTF-8");
        for(int i=0;i<doc.childNodes().size();i++){
            System.out.println(i);
            if(doc.childNode(i).childNodes().size()>0)
                getchild(doc.childNode(i));
            else{
                if(doc.childNode(i).nodeName()=="#text"){
                    doc.childNode(i).remove();
                }
            }
        }
        System.out.println(doc);
    }
    public static void getchild(Node node){
        for(int i=0;i<node.childNodes().size();i++){
            System.out.println(i);
            if(node.childNode(i).childNodes().size()>0)
                getchild(node.childNode(i));
            else{
                if(node.childNode(i).nodeName()=="#text"){
                    node.childNode(i).remove();
                }
            }
        }
    }

}

求指点,谢谢!

举报
Snys
发帖于6年前 1回/1K+阅
顶部