OMG,到底在尋找什么..................
          (構造一個完美的J2EE系統所需要的完整知識體系)
          posts - 198,  comments - 37,  trackbacks - 0

          原帖地址:http://hedong.3322.org/newblog/archives/000051.html

          利用rome寫rss feed生成程序

            前幾天轉一個rome的介紹過來,現在拿它寫個rss feed生成程序。rome的安裝包中,有三個例程,分別是解析已有的rss feed,轉換rss feed的格式以及內容聚合方面的,這個程序可以做補充。   程序思路:在更新不很頻繁的發布網站上,可以生成一個通過http可訪問的靜態rss feed文件。為了便于調用,做成一個bean,接一個帶有絕對路徑的文件名作參數。
          mport java.io.IOException;
          import java.net.UnknownHostException;
          import java.net.URL;
          import java.util.List;
          import java.util.Date;
          import java.util.ArrayList;
          import java.io.BufferedWriter;
          import java.io.Writer;
          import java.io.FileWriter;
          
          import com.sun.syndication.feed.synd.SyndFeedI;
          import com.sun.syndication.feed.synd.SyndContentI;
          import com.sun.syndication.feed.synd.SyndFeed;
          import com.sun.syndication.feed.synd.SyndEntry;
          import com.sun.syndication.feed.synd.SyndCategory;
          import com.sun.syndication.feed.synd.SyndContent;
          import com.sun.syndication.io.SyndFeedOutput;
          import com.sun.syndication.io.SyndFeedInput;
          
          
          public class RssCreator
          {
              public RssCreator()
                  throws TRIPException, UnknownHostException, IOException
              {
              }   
          
              public boolean genRss(String filename)
              {
          
                  try
                  {
          		。。。connect to database and locat the latest 15 records....
          		String outputType = "rss_1.0";
          		String outputFile = filename;
          		Writer outWriter = null;
          		try{
          			outWriter=new BufferedWriter(new FileWriter(outputFile));
          		}catch (Exception e){
          			//deal exception
          		}
                          SyndFeedI feed = new SyndFeed();
                          feed.setFeedType(outputType);
          
                          feed.setTitle(converttoISO(" 你的站點的名稱 "));
                          feed.setDescription(converttoISO("描述一下站點吧。"));
                          feed.setAuthor("author name");
                          feed.setLink("http://www.yoursite.com");
          
                          List entries = new ArrayList();
                          feed.setEntries(entries);
          
                          for (int i=0;i<15;i++) {
          		    SyndEntry entry = new SyndEntry();
           	           	record = search.record(hits-i);
          
                      		tfield=record.field("AUTHORS");
                      		sfld = chkValue(tfield.getValue());
          		    entry.setAuthor( sfld );
          
                      		tfield=record.field("SUBCLASS");
                      		sfld = chkValue(tfield.getValue());
          		    List cats=new ArrayList();
          		    SyndCategory cat=new SyndCategory();
          		    cat.setName(sfld);
          		    cats.add(cat);
          		    entry.setCategories(cats);
          		    
          		    //entry.setContents("什么內容呢?");
                      		tfield=record.field("ABS");
                      		sfld = chkValue(tfield.getValue());
          		    SyndContentI desc=new SyndContent();
          		    desc.setValue(sfld);
          		    entry.setDescription(desc);
          		    
                      		tfield=record.field("URL");
                      		sfld = chkValue(tfield.getValue());
          		    entry.setLink(sfld);
          		    
                      		tfield=record.field("TITLE");
                      		sfld = chkValue(tfield.getValue());
          		    entry.setTitle(sfld) ;
          		    //long ldate=(long)1079511514653;
                      		tfield=record.field("ID");//我數據庫中,ID用的是系統時鐘
                      		sfld = chkValue(tfield.getValue());
          		    Date pdate=null;
          		    pdate=new Date(new Long(sfld).longValue());
            		    entry.setPublishedDate(pdate);
           
                              entries.add(entry);
          
                          }
          
                          SyndFeedOutput output = new SyndFeedOutput();
                          output.output(feed,outWriter);
          		outWriter.close();
          
                      
          		...close database....
          		return true;
                  }
                  catch(Exception exception)
                  {
                      close database
                      close file
                      return false
                  }
                  return true;
              }
              private String chkValue(String s){
              	if (s==null) return "";
              	return s;
              }
              public static String converttoGB(String s)
              {
                  try
                  {
                      byte abyte0[] = s.getBytes("ISO-8859-1");
                      return new String(abyte0, "gb2312");
                  }
                  catch(Exception exception)
                  {
                      return s;
                  }
              }
              public static String converttoISO(String s)
              {
                  try
                  {
                      byte abyte0[] = s.getBytes("gb2312");
                      return new String(abyte0, "ISO-8859-1");
                  }
                  catch(Exception exception)
                  {
                      return s;
                  }
              }
          
          }
            可能會遇到一些編碼問題,所以可能要用到轉換函數,寫了幾個放在代碼末尾
          posted on 2007-01-14 02:33 OMG 閱讀(604) 評論(1)  編輯  收藏 所屬分類: Ajax/RSS/Tag

          FeedBack:
          # re: 竹筍炒肉:利用rome寫rss feed生成程序
          2014-05-05 21:10 | 蔣猛
          sadasdasdasdsadsa  回復  更多評論
            

          <2007年1月>
          31123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          IT風云人物

          文檔

          朋友

          相冊

          經典網站

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 新干县| 陵水| 达拉特旗| 汾阳市| 济源市| 双城市| 钦州市| 额敏县| 通城县| 钟祥市| 邵阳市| 内乡县| 凌云县| 漯河市| 安溪县| 颍上县| 漳浦县| 三河市| 清河县| 那曲县| 安塞县| 罗山县| 兴化市| 鹰潭市| 尚志市| 南华县| 松江区| 岚皋县| 武宁县| 台中市| 晴隆县| 军事| 常宁市| 板桥市| 东光县| 金华市| 铜山县| 天台县| 建瓯市| 塔河县| 沭阳县|