編輯:關於Android編程
問題:
由於android的WebView等相關類沒有提供解析html網頁內容的接口,我們想要獲取網頁的內容並解析出我們想要的元素內容,用android的固有API是沒辦法了。
這裡我提供兩種解析html思路:第一種,使用第三方解析html庫;第二種,使用JAVA與JS回調,通過JS解析html。
之前研究了一下htmlparser這個開源庫,但是發現和android提供的庫有沖突,但其在純java應用程序下是可行的。
htmlparser下載地址:http://htmlparser.sourceforge.net/
那麼繼續尋找,是否還有更適合android的HTML解析庫,功夫不負有心人,還是找到一款比較好的開源庫,這就是jsoup。
jsoup 是一款 Java 的HTML解析器,可直接解析某個URL地址、HTML文本內容。它提供了一套非常省力的API,可通過DOM,CSS以及類似於JQuery的操作方法來取出和操作數據。該版本包含一個支持 HTML5 的解析器分支,可確保跟現在的浏覽器一樣解析 HTML 的方法,同時降低了解析的時間和內存的占用。
可以使用類似DOM的方法來解析一個網頁,比如說,我已經下載了一個網頁到本地,保存為input.html,那麼通過下面的代碼,我們可以得到id為content的DOM中,所有的超鏈接。字符串linkHref得到的是該鏈接的鏈接地址,字符串linkText得到的是該鏈接的文本描述。
jsoup下載地址:http://jsoup.org/
jsoup github地址:https://github.com/scrylove/jsoup
jsoup 入門:http://blog.csdn.net/zjx409/article/details/23375565
File input = new File(/tmp/input.html); Document doc = Jsoup.parse(input, UTF-8, http://example.com/); Element content = doc.getElementById(content); Elements links = content.getElementsByTag(a); for (Element link : links) { String linkHref = link.attr(href); String linkText = link.text(); } File input = new File(/tmp/input.html); Document doc = Jsoup.parse(input, UTF-8, http://example.com/); Element content = doc.getElementById(content); Elements links = content.getElementsByTag(a); for (Element link : links) { String linkHref = link.attr(href); String linkText = link.text(); }
還有很多其他的方法用於在各種不同情況下解析HTML。這裡就不一一列舉了,有興許的同學可以自己去研究一下。
至於第二種思路嘛,這裡不再羅嗦,JAVA和JS互調應該大家都會,至於JS解析html那就交給WEB前端開發人員吧,我們安卓客戶端嘛,只需要得到他們解析完成,回調給我們結果就行。
記得在2013年12月的時候,有系列文章是介紹怎麼開發一個智能手表的App,讓用戶可以在足球比賽中記錄停表時間。隨著Android Wear的問世,在可穿戴設備中開發一款
在這裡先看看效果圖: OK,有時候,在我們的項目中會要求TextView中文本有一部分的字體顏色不一樣,這時我們應該使用 SpannableStrin
前言最近在做項目的過程中,在使用listview的時候遇到了設置item監聽事件的時候在沒有回調onItemClick 方法的問題。我的情況是在item中有一個Butto
總結: asset目錄下文件: 稱為原生文件,這類文件在被打包成apk文件時是不會進行壓縮的,不會自動生成R文件的ID 訪問: 獲取路徑: f