接觸java不久,偶有收穫,最近想做一個web版RSS閱讀器來鍛煉一下。手頭有幾個從不同版本的foxmail中匯出的opml檔案,大家應該都知道,opml檔案就是xml格式的。那麼就先從這裡入手,練習一下使用dom4j讀取xml檔案。
在java程式設計中,尤其是java web開發程式,xml應用頻率超高。Spring、Hibernate、Struts等各種web 架構,MyEclipse、Oracle等IDE,也都主要依託xml。可以說xml對於系統的配置,有著至關重要的作用。而這些也同時增強了系統的靈活性。
先說一下思路:
建立一個java web項目,不過暫時沒有使用jsp,servlet。本文只是使用內建的調試器,先進行測試讀取xml。接下來的博文中,會帶大家一起顯示在已經最佳化的介面中,並提供大部分的rss閱讀器的功能。
由於從不同版本的foxmail中匯出,檔案格式稍有不同,主要分歧是在訂閱分組功能上。有的版本匯出來的分組資訊是在head/title內容中,body/outline則放的是全部的訂閱資訊;有的匯出來的分組資訊則是在body/outline中title和text屬性中,而詳細的訂閱資訊則放在body/outline/outline中。
我想做的系統可以支援讀取多個opml檔案,所以需要一個rss檔案清單設定檔【rss_config.xml】,對應一個實體:RssConfigBean.java,主要包含有opml檔案路徑資訊;分組資訊也需要單獨出來,命名為【RssTeamBean.java】,包括title和text兩個屬性和一個訂閱資訊的列表。訂閱資訊肯定也是獨立的,命名為【RssBean.java】,包括text、title、xmlUrl、htmlUrl、version、type六個屬性。
首先通過讀取rss_config.xml,拿到所有opml檔案路徑,然後迴圈讀取opml,拿到分組資訊及每個分組下的所有詳細訂閱資訊,儲存到實體中,以供調用顯示。
光說不管用,直接上代碼:
①. opml檔案
【單分組foxmail6.5.opml】
<?xml version="1.0"?> <opml version="1.1"> <head> <title>六期新部落格地址</title> </head> <body> <outline text="丁成雲" title="丁成雲" type="rss" version="RSS" xmlUrl="http://blog.csdn.net/sundenskyqq/rss/list" htmlUrl="http://blog.csdn.net/sundenskyqq" description="" /> <outline text="韓正陽" title="韓正陽" type="rss" version="RSS" xmlUrl="http://blog.csdn.net/jiudihanbing/rss/list" htmlUrl="http://blog.csdn.net/jiudihanbing" description="" /> </body> </opml>
【多分組foxmail7.opml】
<?xml version="1.0" encoding="UTF-8"?> <opml version="1.0"> <head> <title>Subscription in Foxmail</title> </head> <body> <outline title="八期" text="八期"> <outline htmlUrl="http://blog.csdn.net/shan9liang" xmlUrl="http://blog.csdn.net/shan9liang/rss/list" version="RSS" type="rss" title="賈琳" text="賈琳的專欄" /> </outline> <outline title="隨便看看" text="隨便看看"> <outline htmlUrl="http://blog.csdn.net/blogdevteam" xmlUrl="http://blog.csdn.net/blogdevteam/rss/list" version="RSS" type="rss" title="CSDN 官方部落格" text="CSDN 官方部落格" /> <outline htmlUrl="http://blog.csdn.net/zhoufoxcn" xmlUrl="http://blog.csdn.net/zhoufoxcn/rss/list" version="RSS" type="rss" title="周公的專欄" text="周公的專欄" /> </outline> <outline title="提高班" text="提高班"> <outline htmlUrl="http://sxyandapp.blog.163.com" xmlUrl="http://sxyandapp.blog.163.com/rss" version="RSS" type="rss" title="石小永" text="石小永" /> <outline htmlUrl="http://blog.csdn.net/qiulongtianshi" xmlUrl="http://blog.csdn.net/qiulongtianshi/rss/list" version="RSS" type="rss" title="郭校林" text="郭校林" /> </outline> </body> </opml>
更多精彩內容:http://www.bianceng.cn/Programming/Java/