Java實現Web版RSS閱讀器(一)dom4j讀取xml(opml)檔案

來源:互聯網
上載者:User

接觸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/

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.