2011-07-13 39 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"); 
}