【问题标题】:Jsoup not selector not returning resultJsoup 不是选择器不返回结果
【发布时间】:2014-10-27 01:49:02
【问题描述】:

尝试使用 Jsoup 选择器选择具有“内容”类的 div 中的所有内容,但同时不选择任何具有社交或媒体类的 div。我知道我可以做一个简单的选择和循环,但我希望 :not 函数能达到我的目的。也许,我的选择器语法是错误的。

public static void main(String args[]) throws ParseException {
    String html = "<html>\n" +
            "<body>\n" +
            "<div class=\"content\">\n" +
            "\t<p>some paragraph</p>\n" +
            "\t<div class=\"social media\">\n" +
            "\tfind us on facebook\n" +
            "\t</div\n" +
            "</div>\n" +
            "</body>\n" +
            "</html>";
    Document doc = Jsoup.parse(html);
    Elements elements = doc.select("div.content div:not(.social)");
    System.out.println(elements.text());
}

预期结果:“某段”

实际结果:空

【问题讨论】:

  • 另一种方法是找到div.content 的子代p,换句话说就是doc.select("div.content p")

标签: java jsoup


【解决方案1】:

您的选择器会匹配没有class="social" 并且是class="content" 的子级的div。要获得预期的结果,请使用此

Elements elements = doc.select("div.content :not(.social)");

或者这个

Elements elements = doc.select("div.content").not(".social");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-11
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-17
    相关资源
    最近更新 更多