使用 Jsoup 选择一个没有类的 HTML 元素

Posted

技术标签:

【中文标题】使用 Jsoup 选择一个没有类的 HTML 元素【英文标题】:Use Jsoup to select an HTML element with no class 【发布时间】:2015-10-05 02:40:14 【问题描述】:

考虑一个像这样的 html 文档

<div>
    <p>...</p>
    <p>...</p>
    ...
    <p class="random_class_name">...</p>
    ...
</div>

我们如何选择所有p 元素,但不包括random_class_name 类的p 元素?

【问题讨论】:

【参考方案1】:
Elements ps = body.select("p:not(.random_class_name)");

你可以使用伪选择器:not

如果类名未知,你仍然可以使用类似的表达式:

Elements ps = body.select("p:not([class])");

在第二个示例中,我使用属性选择器[],在第一个示例中使用的是类的正常语法。

见Jsoup docu about css selectors

【讨论】:

对不起,如果问题不清楚,“random_class_name”实际上是一个未知的类,而不是同名的类 其他p没有课程? 查看我的编辑。只要其他

没有分配任何类,它就可以工作。

【参考方案2】:
Document doc = Jsoup.parse(htmlValue);
    Elements pElements = doc.select("p");         
    for (Element element : pElements) 
        String class = element.attr("class");
        if(class == null)
            //.....
        else
             //.....
        
    

【讨论】:

以上是关于使用 Jsoup 选择一个没有类的 HTML 元素的主要内容,如果未能解决你的问题,请参考以下文章

详解JSOUP的select选择器语法

JSoup 解析器没有拾取表格元素

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

jsoup 解析HTML信息

Jsoup学习总结

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