2011-03-11 70 views
2

我試圖從我的拼貼新聞網站獲取圖片的絕對URL,但迄今爲止一直不成功。我從這個網站工作http://www.dcu.ie/news/index.shtml。從源代碼可以看出,第一張圖片具有絕對網址,但其餘圖片僅包含相對網址。我已經嘗試了Jsoups文檔的示例,但無法使其工作。這顯示第一個圖像,然後顯示其餘的空框。我想感謝所有幫助possible.ThanksAndroid HTML Jsoup

public class NewsActivity extends Activity { 
    WebView mWebView; 
    String test2 = "<html><body>"; 
    Document docs; 
    public void main(String... args) 
     { 
     try 
     { 
     docs = Jsoup.connect("http://www.dcu.ie/news/index.shtml").get(); 
    } 
     catch (IOException e) 
     { 
     e.printStackTrace(); 
    } 
     Elements imgs = docs.select("img[src$=.jpg]"); 
     for (Element img : imgs) 
     { 
      String url = img.toString(); 
      test2 = test2 + " " + url + " "; 
     } 
     public void onCreate(Bundle savedInstanceState) { 
     main(); 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     mWebView = (WebView) findViewById(R.id.webview); 
     mWebView.setWebViewClient(new NewsClient()); 
     mWebView.getSettings().setJavaScriptEnabled(true); 
     mWebView.getSettings().setDomStorageEnabled(true); 
     mWebView.loadData(test2, "text/html", "utf-8"); 
    } 
} 

回答

1

您需要Element#absUrl()提取絕對URL,而不是Element#toString()讓整個HTML元素的文本表示。

Elements imgs = docs.select("img[src$=.jpg]"); 
for (Element img : imgs) { 
    String url = img.absUrl("src"); 
    String newImg = "<img src=\"" + url + "\"/>"; 
    // ... 
} 
+0

absUrl(「href」)部分應該有什麼不同,還是應該保留爲href?這沒有爲我工作.... – dbaby7 2011-03-14 18:27:12

+0

對不起我的錯誤,我想'',它應該是'src'。查看更新的答案。 – BalusC 2011-03-14 18:28:27

+0

非常感謝你,你是一個救星!我的代碼變成了綠色,並帶有我嘗試過的所有方式的評論,最後它非常簡單!所以,現在我已經用表格格式組織了帶有標籤的圖像,並且希望它們能夠在點擊時繼續閱讀完整文章......有什麼建議嗎?即使它們是鏈接,Webview也不會做任何事情,並且我可以解析生成的頁面嗎?再次感謝 – dbaby7 2011-03-15 14:24:40