2013-10-06 207 views
0

我试图执行JSOUP查询,但是出现错误,指出“doc无法解析”和“doc无法解析为变量”我知道我需要在使用它之前调用doc我只是不确定如何去做 - 这是我第一次用JSOUP构建解析器 - 我确定它非常简单 - 我只需要一个快速指针。JSOUP - doc无法解析并且doc无法解析为变量

public class MainActivity extends Activity { 

    TextView tv; 
    String url = "http://microsoft.com"; 
String tr; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     tv = (TextView) findViewById(R.id.TextView01); 
     new MyTask().execute(url); 
    } 

    private class MyTask extends AsyncTask<String, Void, String> { 
     ProgressDialog prog; 
     String title = ""; 

     @Override 
     protected void onPreExecute() { 
      prog = new ProgressDialog(MainActivity.this); 
      prog.setMessage("Loading...."); 
      prog.show(); 
     } 

     @Override 
     protected String doInBackground(String... params) { 
      try { 
        doc = Jsoup.connect(params[0]).get(); 
        Element tableElement = doc.select(".datagrid").first(); 

        Elements tableRows = tableElement.select("tr"); 
        for (Element row : tableRows) { 
         Elements cells = row.select("td"); 
         if (cells.size() >0) { 
          System.out.println(cells.get(0).text()+"; "+cells.get(1).text()+"; "+cells.get(2).text()+"; "+cells.get(3).text()); 
         } 
        }} catch (IOException e) { 
       e.printStackTrace(); 
      } 
      return title; 
     } 




     @Override 
     protected void onPostExecute(String result) { 
      super.onPostExecute(result); 
      prog.dismiss(); 
      tv.setText(result); 
     } 
    } 
} 
+0

你永远不会创建对象文档,这就是为什么。您可以将它创建为一个字段并在该方法中进行初始化,或者将其创建为局部变量。除非你打算在方法之外使用它,否则后者可能最适合你。 –

+0

我打算在这种方法之外使用它......我如何将它实例化为一个字段? (如果你希望你可以发表你的回答作为答案,我会接受它) – HelloMojo

回答

0

您正在尝试使用尚未声明的变量。正如你已经与

TextView tv; 

做,你将不得不声明变量文档。

Document doc; 

不要忘了导入下列包org.jsoup.nodes.Document