2011-07-13 40 views
1

我試圖連接到一個網站,並拉出一些特定的信息。我正在使用HTMLCleaner和xpath,但它似乎不支持我需要的所有xpath查詢。在Android中使用Jsoup的幫助

我想在閱讀好評後閱讀Jsoup。但是,問題是每當我運行它強制關閉的程序。以下是我的試用計劃。請讓我知道我出錯的地方。 (我在清單文件中設置了Internet權限)。

謝謝。

import android.app.Activity; 
import android.os.Bundle; 
import android.widget.TextView; 

import org.jsoup.Jsoup; 
import org.jsoup.nodes.Document; 
import org.jsoup.nodes.Element; 
import org.jsoup.select.Elements; 
import java.io.IOException; 

public class jTrial extends Activity { 
    /** Called when the activity is first created. */ 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     String myString = null;  
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.search); 
     try{ 
      Document doc = Jsoup.connect("http://google.com/").get(); 

      Elements divs = doc.select("div"); 

      for (Element div : divs) { 
       myString=div.text(); 
      } 
     } 
     catch(IOException e){ 
      myString=e.getMessage(); 
     } 
     TextView tv=new TextView(this); 
     tv.setText(myString); 
     //this.setContentView(tv); 
    } 
} 

謝謝。

+1

您可以發佈您logcat的嗎? –

+0

^同意。發佈你的日誌。很難幫助沒有具體的錯誤。 –

+1

第一次擴大你的異常捕捉(即包括例外)......並在你的文本視圖中包含空值檢查 第二個TextView無處可去,即。你沒有把它放在任何地方,也沒有給它一個地方住在你的活動的看法... 這本身不應該強制關閉你的應用程序,但我認爲它值得一提:) 此外,這不是一個猜謎遊戲,對我們來說,因爲我們知道如何做到這一點(在東方,我已經與Jsoup取得了成功),所以如果你拒絕發佈LogCat輸出,即使有賞金,你也不會很遠......;) – Dan

回答

0

您應該http://jsoup.org/download

下載Jsoup jar文件創建在項目目錄的新目錄「庫」,而這個jar文件複製到庫目錄。在res文件夾中創建「庫」會導致錯誤,因爲res文件夾只允許由Android定義。然後右鍵單擊該項目並打開構建路徑 - >配置構建路徑。 選擇庫標籤並添加罐子。導航到您的項目庫目錄並添加Jsoup jar文件。 重新導入所有包。

+0

我已經在構建路徑中包含了jsoup jar文件。還是行不通。謝謝。 – user841811

0

你可能得到的異常當您嘗試(因爲,你還沒有發佈的logcat)

for (Element div : divs) 
    { 
     myString=myString+" " +div.text(); //if it was like you did, than you'll see only the last element or use div.getElementsByTag("div"); 
    } 
    TextView tv=new TextView(this); 
      tv.setText(myString); 

如果要分析從HTML的<divs或許你應該使用div.getElementsByTag("div"),因爲你正在尋找的HTML標籤然後解析。 要麼你得到TextView錯誤或你的myString爲空(可能是NullPointerException)。

請嘗試重寫喜歡(我希望你的TextView在search.xml)的那部分

TextView tv=(TextView)findViewById(R.id.yourTextView); 
if(myString!=null) // if it is null you'll know that something with the Jsoup isnt right 
{ 
     tv.setText(myString); 
}else { 
tv.seText("myString is null"); 
}