请懂的帮忙解释一下哈~html解析

private static DocumentFragment parse(InputSource input) throws Exception {
        DOMFragmentParser parser = new DOMFragmentParser();//HTML片段的DOM解析器。
       
        //实现了一个HTML文件。提供对文档中,它的身体和标题顶层元素。

//        几种方法创建所有(注释,文本,元素等),基本类型的新节点。这些方法创建新的节点,但不要放置在文档树上。这些节点可能被放置在文档树使用
        HTMLDocumentImpl doc = new HTMLDocumentImpl();
        try {
            //设置SAX2解析器中的任何功能的状态。
            //设置SAX2解析器中的任何功能的状态。解析器可能无法识别功能,如果它不认识它,它可能无法完成请求。
            parser.setFeature(
                    "http://cyberneko.org/html/features/augmentations", false);//是否将与HTML事件有关的infoset项包括在解析管道中。
            parser.setProperty(
                    "http://cyberneko.org/html/properties/default-encoding",
                    defaultCharEncoding);//IANA encoding names 默认的HTML文件编码
            parser
                    .setFeature(
                            "http://cyberneko.org/html/features/scanner/ignore-specified-charset",
                            true);
            parser
                    .setFeature(
                            "http://cyberneko.org/html/features/balance-tags/ignore-outside-content",
                            false);
            parser
                    .setFeature(
                            "http://cyberneko.org/html/features/balance-tags/document-fragment", 
                            true);
            parser.setFeature(
                    "http://cyberneko.org/html/features/report-errors", false);//是否报告错误
        } catch (SAXException e) {
        }

        doc.setErrorChecking(false);
        DocumentFragment res = doc.createDocumentFragment(); //创建一个空DocumentFragment对象。
        DocumentFragment frag = doc.createDocumentFragment();
       
        //解析一个文档片段
        parser.parse(input, frag);//解析一个文档片段,解析成DocumentFragment对象,放到frag里=================??????????
        System.out.println(frag+"frag");

        //将子节点添加到所有节点的后面
        res.appendChild(frag);
        try {
            while (true) {
                frag = doc.createDocumentFragment();
                parser.parse(input, frag);
                if (!frag.hasChildNodes())
                    break;
                System.out.println(" - new frag, "
                        + frag.getChildNodes().getLength() + " nodes.");
                res.appendChild(frag);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

        return res;
    }

 

 

 

红色部分输出的是null

上面代码的意思是啥啊

懂得帮我解释一下啊

谢谢啦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值