2014-09-02 171 views
1

試圖使用Jsoup選擇器來選擇div中的所有內容,但同時不選擇具有社交類或媒體的div。我知道我可以做一個簡單的選擇和循環,但會預期:不是功能爲我的目的工作。也許,我的選擇器語法是錯誤的。Jsoup不選擇不返回結果

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()); 
} 

預期的結果:「有些段落」

實際結果:空

+0

反過來會找到'div.content'的'p'兒童,換句話說'doc.select(「div中。內容p「)'。 – Pshemo 2014-09-02 18:16:07

+0

我的回答有幫助嗎? – alkis 2014-12-01 11:06:21

回答

4

你的選擇,因爲它是相匹配,沒有class="social",並DIV的孩子的用class="content"的div。有預期的結果使用

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

或者這

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