JSoup中的部分解析注释标记

时间:2015-06-26 06:30:46

标签: java jsoup

我想检查是否正确插入了HTML注释标记..如果有开始标记但没有结束标记,我想显示错误。

我提到this link并且能够检索有效的评论节点

for(Element e : document.getAllElements()){
            for(Node n: e.childNodes()){
                if(n instanceof Comment){
                    commentNodes++;
                    System.out.println(n);
                }
            }
        }
        if(html.contains("<!--") && commentNodes == 0) {
            System.out.println("error");
        } else  if(html.contains("-->") && commentNodes == 0) {
            System.out.println("error1");
        }

有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

我不确定JSoup是否会解析未关闭的评论标记,尽管还有其他方法可以实现您的目标:

int openings = StringUtils.countMatches(html, "<!--");
int closures = StringUtils.countMatches(html, "-->");
if (openings > closures)
    System.out.println("Error: There are not closed comment tags!");

它将计算注释标记开头和闭包的出现次数,并通过比较它可以假设是否有未关闭。要完全确定结果,您还可以将值与JSoup(在您的示例中为commentNodes)获得的标记数进行比较。