JSoup - 选择所有评论

Posted

技术标签:

【中文标题】JSoup - 选择所有评论【英文标题】:JSoup - Select all comments 【发布时间】:2011-05-03 01:44:09 【问题描述】:

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

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

我试过这个:

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

  

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

干杯,

皮特

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

【参考方案2】:

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

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

【讨论】:

以上是关于JSoup - 选择所有评论的主要内容,如果未能解决你的问题,请参考以下文章

Jsoup - CSS 查询选择器问题 (?)

如何在没有标签的情况下选择 HTML 标签中的文本(JSoup)

仅使用 Jsoup 从子节点中选择?

详解JSOUP的select选择器语法

使用 JSoup 选择以特定模式开头的标签

在 JSoup 中按“名称”选择