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

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

          利用rome寫rss feed生成程序

            前幾天轉(zhuǎn)一個rome的介紹過來,現(xiàn)在拿它寫個rss feed生成程序。rome的安裝包中,有三個例程,分別是解析已有的rss feed,轉(zhuǎn)換rss feed的格式以及內(nèi)容聚合方面的,這個程序可以做補充。   程序思路:在更新不很頻繁的發(fā)布網(wǎng)站上,可以生成一個通過http可訪問的靜態(tài)rss feed文件。為了便于調(diào)用,做成一個bean,接一個帶有絕對路徑的文件名作參數(shù)。
          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("什么內(nèi)容呢?");
                      		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");//我數(shù)據(jù)庫中,ID用的是系統(tǒng)時鐘
                      		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;
                  }
              }
          
          }
            可能會遇到一些編碼問題,所以可能要用到轉(zhuǎn)換函數(shù),寫了幾個放在代碼末尾
          posted on 2007-01-14 02:33 OMG 閱讀(598) 評論(1)  編輯  收藏 所屬分類: Ajax/RSS/Tag

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

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

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          IT風(fēng)云人物

          文檔

          朋友

          相冊

          經(jīng)典網(wǎng)站

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 蓬莱市| 财经| 永康市| 稻城县| 高邮市| 台前县| 同德县| 肃北| 通河县| 二连浩特市| 贵港市| 金溪县| 朔州市| 台州市| 达日县| 泰安市| 当涂县| 墨江| 南华县| 延寿县| 张掖市| 永嘉县| 铜川市| 厦门市| 陆河县| 丰镇市| 沂南县| 雷波县| 海原县| 牡丹江市| 康马县| 奇台县| 鄂托克旗| 二连浩特市| 乌兰县| 喀什市| 平利县| 绥宁县| 垦利县| 涿鹿县| 汉沽区|