投稿者: 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!」というコードですね。^^