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風云人物

          文檔

          朋友

          相冊

          經典網站

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 高雄市| 闽清县| 福清市| 塘沽区| 宜城市| 连南| 来宾市| 横峰县| 晋江市| 昂仁县| 公安县| 淅川县| 无锡市| 来凤县| 广南县| 崇文区| 静海县| 东海县| 宁城县| 穆棱市| 乐陵市| 泉州市| 嘉兴市| 阿坝| 广河县| 炉霍县| 黄冈市| 遂平县| 厦门市| 佛教| 北碚区| 宣城市| 吉木乃县| 洛隆县| 安阳市| 兴和县| 余姚市| 丹棱县| 施秉县| 西和县| 河北省|