2011-07-13 8 views
1

私はウェブサイトに接続して特定の情報を引き出そうとしています。 HTMLCleanerとxpathを使用していましたが、必要なすべてのxpathクエリをサポートしていないようです。AndroidでのJsoupの使用に関するヘルプ

良いレビューを読んだら、今すぐJsoupを使用しようとしています。しかし、問題は、プログラムを実行するたびに強制的に強制終了することです。以下は私の試用プログラムです。私が間違っているところを教えてください。 (私は、インターネット許可がマニフェストファイルに設定されています)。

ありがとうございます。

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

(私はあなたがあなたのsearch.xmlでのTextViewと思っている)のようにその部分を書き換えてください試してみてください? –

+0

^合意。あなたのログを投稿してください。特定のエラーがなければ助けが大変です。 –

+1

最初に例外をキャッチする(例外を含める)...そして、テキストビューのヌルチェックを から含むようにします.2番目にTextViewはどこにも行きません。あなたはどこにでも配置しておらず、あなたのアクティビティのビューに住む場所も与えられていません... それ自体はあなたのアプリを強制終了してはいけませんが、私はそれに言及する価値があると思っています:) また、これは推測ゲーム私たちはこれを行う方法を知っているので(東では、私はJsoupで成功しています)、LogCatの出力を投稿することを拒否すれば、恩恵を受けても遠くには届かないでしょう...;) – Dan

答えて

0

あなたはプロジェクトディレクトリに新しいディレクトリ「LIBS」を作成し、libsディレクトリには、このjarファイルをコピーhttp://jsoup.org/download

からJsoupのjarファイルをダウンロードしてください。 resフォルダに "libs"を作成するとエラーが発生するのは、res FolderはAndroidで定義されたフォルダのみであるためです。次に、プロジェクトを右クリックし、[ビルドパス] - > [ビルドパスを設定]を開きます。 [ライブラリ]タブを選択し、jarを追加します。プロジェクトlibsディレクトリに移動し、Jsoup jarファイルを追加します。 すべてのパッケージを再度インポートし直します。

+0

私は既にjsoup jarファイルをビルドパスに含めました。まだ動かない。ありがとう。 – user841811

0

あなたがしようとすると、おそらく例外を取得(あなたがLogCatを投稿haventは、以来)

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を解析したい場合は、HTMLタグを探しているので、おそらくあなたはdiv.getElementsByTag("div")を使用する必要がありますパースします。 TextViewが間違っているか、myStringがnullです(NullPointerExceptionかもしれません)。

はあなたのlogcatを投稿することができます

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"); 
} 
関連する問題