2015-09-09 61 views
2

我想從HTML頁面的div類中讀取文本。
我正在嘗試的是,我正在嘗試從下面的div類中讀取文本。如何從div類獲取文本?

<div class="Oprice clearfix"> 
<div class="text-bold Nprice"> 

我不明白什麼是clearfix和text-bold。請解釋我。 以下代碼適用於兩個div類。

Element lcEl = doc.getElementsByClass("Oprice").first(); //first div 
System.out.println("found price: "+lcEl.text()); 

Element lcEl = doc.getElementsByClass("Nprice").first(); //second div 
System.out.println("found price: "+lcEl.text()); 

但爲什麼以下代碼無法正常工作?

Element lcEl = doc.getElementsByClass("Oprice.clearfix").first(); //first div 
    System.out.println("found price: "+lcEl.text()); 

Element lcEl = doc.getElementsByClass("text-bold.Nprice").first(); 
    System.out.println("found price: "+lcEl.text()); 

請幫助我,有什麼辦法讓它工作嗎?

回答

4

我想你使用的是jsoup。

根據您已經使用不允許多個類名

public Elements getElementsByClass(String className) 

這種方法的方法getElementsByClass(String className)發現有這個類,包括或該元素的元素。它不區分大小寫。元素可以有多個類(如<div class="header round first">。這個方法檢查每一個類,這樣你就可以找到以上el.getElementsByClass("header");,但你不能提供類名像Oprice.clearfix。由於其實現不允許那樣的說法。

參數:className - 類的名稱搜索

返回:與所提供的類名的元素,空,如果沒有

如果你想趕上多類元素使用select(),做到這一點的。 FOL低價,

String html = "<div class=\"content-text right-align bold-font\">foo</div>"; 
Document document = Jsoup.parse(html); 
Elements elements = document.select("div.content-text.right-align.bold-font"); 
System.out.println(elements.text()); 
+0

不適用於我我有以下HTML

This is for test

1

「Oprice」 和 「clearfix」 是兩個班

<div class="Oprice clearfix"/> 

,這意味着,你可以通過這個標籤:

doc.getElementsByClass("Oprice").first(); 

doc.getElementsByClass("clearfix").first(); 

的不工作代碼:

doc.getElementsByClass("Oprice.clearfix").first() 

只是沒有意義。 document.getElementsByClass()接受一個表示要查詢的類的字符串。您提供的參數(「Oprice.clearfix」)看起來像(但不是)css查詢。您需要在此方法中提供準確且準確的類名稱。

+0

感謝王宇對你的很好的解釋。 – subramaniam