JSoup - เลือกความคิดเห็นทั้งหมด

ฉันต้องการเลือกความคิดเห็นทั้งหมดจากเอกสารโดยใช้ JSoup ฉันอยากจะทำอะไรแบบนี้:

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

ฉันได้ลองสิ่งนี้แล้ว:

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

  }

}

แต่ข้อผิดพลาดต่อไปนี้เกิดขึ้นใน eclipse "องค์ประกอบประเภทตัวถูกดำเนินการตามเงื่อนไขที่เข้ากันไม่ได้องค์ประกอบและความคิดเห็น"

ไชโย

พีท


person Community    schedule 31.10.2010    source แหล่งที่มา


คำตอบ (2)


เนื่องจาก Comment extends Node คุณต้องใช้ instanceof กับอ็อบเจ็กต์โหนด ไม่ใช่องค์ประกอบ เช่นนี้:

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

ใน Kotlin คุณสามารถรับผ่าน Jsoup ทุกๆ Comment ของทั้งหมด Document หรือเฉพาะ Element ด้วย:

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