JSoup - Pilih semua komentar

Saya ingin memilih semua komentar dari dokumen menggunakan JSoup. Saya ingin melakukan sesuatu seperti ini:

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

Saya sudah mencoba ini:

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

  }

}

Namun kesalahan berikut terjadi di gerhana "Jenis operan bersyarat tidak kompatibel Elemen dan Komentar".

Bersulang,

Pete


person Community    schedule 31.10.2010    source sumber


Jawaban (2)


Karena Comment extends Node Anda perlu menerapkan instanceof ke objek simpul, bukan elemennya, seperti ini:

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

Di Kotlin Anda bisa mendapatkan melalui Jsoup setiap Comment dari keseluruhan Document atau Element tertentu dengan:

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