JSoup - 选择所有评论

时间:2010-10-31 13:24:24

标签: java screen-scraping extract comments jsoup

我想使用JSoup从文档中选择所有注释。我想做这样的事情:

for(Element e : doc.select("comment")) {
   System.out.println(e);
}

我试过这个:

for (Element e : doc.getAllElements()) {
  if (e instanceof Comment) {

  }

}

但是在eclipse中出现以下错误“不兼容的条件操作数类型元素和注释”。

干杯,

皮特

2 个答案:

答案 0 :(得分:11)

Comment extends Node开始,您需要将instanceof应用于节点对象,而不是元素,如下所示:

    for(Element e : doc.getAllElements()){
        for(Node n: e.childNodes()){
            if(n instanceof Comment){
                System.out.println(n);
            }
        }
    }

答案 1 :(得分:0)

Kotlin中,您可以通过Jsoup通过整个Comment中的每个Document或特定的Element来获得:

fun Element.getAllComments(): List<Comment> {
  return this.allElements.flatMap { element ->
    element.childNodes().filterIsInstance<Comment>()
  }
}