LINQを使用したRSSの生成

投稿者: Tomotoshi Sugishita 2008年4月8日 11:47

サンプルというか、メモ書きに近いです。
VB9のXMLリテラルを使用して書くとどうなるのかなと思って作ってみました。
(日付に関しては、RFC822形式になっていません。)
データの最新10件を出力しています。

Using db As New TestDataContext()
    Dim topics As Table(Of Topics) = db.GetTable(Of Topics)()
    Dim rss = <?xml version="1.0"?>
              <rss version="2.0">
                  <channel>
                      <title>LINQでRSS</title>
                      <link>http://www.hoge.com/</link>
                      <description>LINQでテーブルのデータよりRSSを生成するサンプル</description>
                      <language>ja-JP</language>
                      <pubDate><%= topics.Max(Function(topic As Topics) topic.CreatedDate).ToUniversalTime() %></pubDate>
                  </channel>
                  <items>
                      <%= (From topic In topics _
                          Order By topic.CreatedDate Descending _
                          Select <item>
                                     <title><%= topic.Title %></title>
                                     <link>http://www.hoge.com/topic.aspx?id=<%= topic.Id %></link>
                                     <description><%= topic.Summary %></description>
                                     <pubDate><%= topic.CreatedDate.ToUniversalTime() %></pubDate>
                                     <guid>http://www.hoge.com/topic.aspx?id=<%= topic.Id %></guid>
                                 </item>).Take(10) %>
                  </items>
              </rss>End Using

一応中でXMLリテラルやラムダ式なんかも使ってます。
「これぞVB9!」というコードですね。^^

タグ: ,

Visual Basic

コメントを書く




biuquote
  • コメント
  • プレビュー
Loading



杉下 朋年

Tomotoshi Sugishita
Tomotoshi Sugishita
< D&UNITE 株式会社 >

Microsoft MVP
Microsoft MVP for Development Platforms
- ASP.NET/IIS Jul.2009 - Jun.2012
Microsoft MVP for Development Tools
- Visual Basic Jul. 2004 - Jun. 2009

 

カレンダー

<<  2月 2012  >>
2930311234
567891011
12131415161718
19202122232425
26272829123
45678910

投稿一覧をカレンダーで表示