2012-02-09 42 views
0

我一直在試圖從該URL http://www.isleworthsyon.hounslow.sch.uk/中的Java/Android的爲什麼Jsoup刮數據不同

我試着刮在Java中的文本刮「學校公告」,然後全部換成「」(這我不是確定它是什麼字符,)用一個新的線使用String.replaceAll方法,它的工作絕對好,結果完美,但是當我將相同的代碼應用到Android上時,它給了我不同的結果。

在Java:

String URL = "http://www.isleworthsyon.hounslow.sch.uk/"; 

Document site = null; 
try { 
    site = Jsoup.connect(URL).get(); 
} catch (IOException e) { 

    e.printStackTrace(); 
} 


     String HTML = site.html(); 

     site.select("a").remove(); 

     Elements news = site.select("div#np_91983-1"); 

     String output = news.text(); 


     String for_output_text = output.replaceAll(" ","\n\n"); 

     System.out.println(for_output_text); 

} 

}

Android中:

super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    final TextView text = (TextView)findViewById(R.id.text); 

     String URL = "http://www.isleworthsyon.hounslow.sch.uk/"; 

     Document site = null; 
     try { 
      site = Jsoup.connect(URL).get(); 
     } catch (IOException e) { 

      e.printStackTrace(); 
     } 

     site.select("a").remove(); 

     Elements news = site.select("div#np_91983-1"); 

     String output = news.text(); 

     String for_output_text = output.replaceAll("   ","\n\n"); 

     text.setText(for_output_text); 
     } 

兩個輸出文本是不同的,因爲你可以看到下面

http://dl.dropbox.com/u/35866688/Comparison.png

順便說一句,這是我在網上第一次去刮

編輯:實驗後,我從news.text()得到的字符串在Java和Android的不同間距。任何建議,爲什麼是這種情況,有沒有其他的選擇?

+1

作爲關注點,它仍然是「在Java中」在Android上運行時。但是你沒有描述什麼不同,只顯示了兩個基本相同的代碼塊。 – 2012-02-09 21:51:08

+0

對不起,我知道這兩個都是用Java編寫的,但我不能很快提出一個可以區分它們的術語。順便說一句,我已經提出了這個問題。 – 2012-02-09 22:13:59

+0

請調試你的代碼,並使用diff比較字符串,而不是隻看TextView – marcosbeirigo 2012-02-09 22:16:00

回答

0

終於!我找到了更好的解決方案;用於循環並分別添加每個元素。

final TextView text = (TextView)findViewById(R.id.text); 

     String URL = "http://www.isleworthsyon.hounslow.sch.uk/"; 

     Document site = null; 
     try { 
      site = Jsoup.connect(URL).get(); 
     } catch (IOException e) { 

      e.printStackTrace(); 
     } 

     site.select("a").remove(); 

     Elements news = site.select("div#np_91983-1"); 

     Elements newsline = news.select("[align~=center]"); 

     String output = ""; 
     String oldline = ""; 

     for (int i = 0; i < newsline.size(); i++) { 


      String newline = oldline + "\n" + newsline.get(i).text(); 
      oldline = newline; 
      output = newline; 
      }   

     text.setText(output); 

謝謝大家誰幫助