Web 2.0 は、Blog、Wike、Tag、RSS などのテクノロジーに代表されるパーソナライゼーションを中心とした新世代のインターネット モデルです。RSS は、Blog などの用語に比べてあまり普及していないようです。ただし、Web ページを開くと、次のよう
に RSS や などの目を引くアイコンが
表示されます。
1システムを使用する。
2System.Xml を使用します。
3System.Collections を使用します。
4System.Globalization の使用。
5System.Web を使用します。
6
7名前空間BLRL
8{
9 /// <概要>
10 /// Rss の概要説明。
11 /// </まとめ>
12 パブリッククラス RSS
13 {
14 const string dublinCoreNamespaceUri = @" http://purl.org/dc/elements/1.1/ ";
15 const string shNamespaceUri = @" http://purl.org/rss/1.0/modules/slash/ ";
16 const string syndicationNamespaceUri = @" http://purl.org/rss/1.0/modules/syndication/ ";
17 //RSS チャネル構造
18 構造体 RssChannel
19 {
20 パブリック文字列 title;//title
21 パブリック文字列リンク;//接続
22 パブリック文字列 language;//言語
23 パブリック文字列 description;//説明
24 パブリック文字列 webMaster;//パブリッシャー
25}
26
27 //RSS画像情報
28 構造体RssImage
29 {
30 パブリック文字列 URL;//アドレス
31 パブリック文字列 title;//title
32 public int height;//height
33 public int width;//length
34}
35
36 //RSSアイテム構造
37 構造体RssItem
38 {
39 パブリック文字列 title;//title
40 パブリック文字列カタログ;//category
41 パブリック文字列リンク;//接続
42 public DateTime pubDate;//公開日
43 パブリック文字列 description;//説明
44
45 }
46 公開Rss()
47 {
48 //
49 // TODO: ここにコンストラクター ロジックを追加します
50 //
51 }
52 /// <概要>
53 ///RSSバージョン情報を追加
54 /// </まとめ>
55 /// <param name="xmlDocument"></param>
56 /// <リターン></リターン>
57 パブリック静的XmlDocument AddRssPreamble(XmlDocument xmlDocument)
58 {
59 //バージョン1.0のxml作成宣言
60 XmlDeclaration xmlDeclaration = xmlDocument.CreateXmlDeclaration("1.0", "utf-8", null);
61 xmlDocument.InsertBefore(xmlDeclaration, xmlDocument.DocumentElement);
62
63 XmlElement rssElement = xmlDocument.CreateElement("rss");
64
65 XmlAttribute rssVersionAttribute = xmlDocument.CreateAttribute("バージョン");
66 rssVersionAttribute.InnerText = "2.0";
67 rssElement.Attributes.Append(rssVersionAttribute);
68 xmlDocument.AppendChild(rssElement);
69
70
71 XmlAttribute dublicCoreNamespaceUriAttribute = xmlDocument.CreateAttribute("xmlns:dc");
72 dublicCoreNamespaceUriAttribute.InnerText = dublinCoreNamespaceUri;
73 rssElement.Attributes.Append(dublicCoreNamespaceUriAttribute);
74
75 XmlAttribute slashNamespaceUriAttribute = xmlDocument.CreateAttribute("xmlns:slash");
76 スラッシュネームスペースUriAttribute.InnerText = スラッシュネームスペースUri;
77 rssElement.Attributes.Append(slashNamespaceUriAttribute);
78
79 XmlAttribute syndicationNamespaceUriAttribute = xmlDocument.CreateAttribute("xmlns:sy");
80 syndicationNamespaceUriAttribute.InnerText = syndicationNamespaceUri;
81 rssElement.Attributes.Append(syndicationNamespaceUriAttribute);
82
83
84 xmlDocument を返します。
85}
86
87 /// <概要>
88 /// チャンネルを追加
89 /// </まとめ>
90 /// <param name="xmlDocument"></param>
91 /// <param name="チャンネル"></param>
92 /// <リターン></リターン>
93 プライベート静的 XmlDocument AddRssChannel(XmlDocument xmlDocument, RssChannel チャネル)
94 {
95 XmlElementchannelElement = xmlDocument.CreateElement("チャネル");
96 XmlNode rssElement = xmlDocument.SelectSingleNode("rss");
97
98 rssElement.AppendChild(channelElement);
99
100 //タイトルを追加
101 XmlElementchannelTitleElement = xmlDocument.CreateElement("タイトル");
102 チャンネルタイトル要素.インナーテキスト = チャンネル.タイトル;
103 チャンネル要素.AppendChild(チャンネルタイトル要素);
104
105 //接続を追加
106 XmlElementchannelLinkElement = xmlDocument.CreateElement("リンク");
107 チャンネルリンク要素.インナーテキスト = チャンネル.リンク;
108 チャンネル要素.AppendChild(チャンネルリンク要素);
109
110 //説明を追加
111 XmlElementchannelDescriptionElement = xmlDocument.CreateElement("説明");
112 XmlCDataSection cDataDescriptionSection = xmlDocument.CreateCDataSection(channel.description);
113 channelDescriptionElement.AppendChild(cDataDescriptionSection);
114 チャンネル要素.AppendChild(チャンネル説明要素);
115
116 //言語を追加
117 XmlElement languageElement = xmlDocument.CreateElement("言語");
118 言語要素.InnerText = チャネル.言語;
119 チャンネル要素.AppendChild(言語要素);
120
121 //パブリッシャーを追加
122 XmlElement webMasterElement = xmlDocument.CreateElement("webMaster");
123 webMasterElement.InnerText = チャネル.webMaster;
124 チャンネル要素.AppendChild(webMasterElement);
125
126 xmlDocument を返します。
127 }
128
129
130 //Rss画像を追加
131 プライベート静的 XmlDocument AddRssImage(XmlDocument xmlDocument, RssImage img)
132 {
133 XmlElement imgElement = xmlDocument.CreateElement("画像");
134 XmlNodechannelElement = xmlDocument.SelectSingleNode("rss/channel");
135
136 //タイトルを作成
137 XmlElement imageTitleElement = xmlDocument.CreateElement("タイトル");
138 imageTitleElement.InnerText = img.title;
139 imgElement.AppendChild(imageTitleElement);
140
141 //アドレスを作成する
142 XmlElement imageUrlElement = xmlDocument.CreateElement("url");
143 イメージUrlElement.InnerText = img.url;
144 imgElement.AppendChild(imageUrlElement);
145
146 //高さを作成する
147 XmlElement imageHeightElement = xmlDocument.CreateElement("高さ");
148 imageHeightElement.InnerText = img.height.ToString();
149 imgElement.AppendChild(imageHeightElement);
150
151 //長さを作成する
152 XmlElement imageWidthElement = xmlDocument.CreateElement("幅");
153 imageWidthElement.InnerText = img.width.ToString();
154 imgElement.AppendChild(imageWidthElement);
155
156 //画像ノードをチャネルノードに追加します
157 チャンネル要素.AppendChild(imgElement);
158 戻り値 xmlDocument;
159
160 }
161
162
163 /// <概要>
164 /// アイテム情報を追加
165 /// </概要>
166 /// <param name="xmlDocument"></param>
167 /// <param name="アイテム"></param>
168 /// <リターン></リターン>
169 プライベート静的 XmlDocument AddRssItem (XmlDocument xmlDocument、RssItem 項目)
170 {
171 XmlElement itemElement = xmlDocument.CreateElement("item");
172 XmlNodechannelElement = xmlDocument.SelectSingleNode("rss/channel");
173
174 //タイトルを作成
175 XmlElement itemTitleElement = xmlDocument.CreateElement("タイトル");
176 XmlCDataSection cDataTitleSection = xmlDocument.CreateCDataSection(item.title);
177 項目タイトル要素.AppendChild(cDataTitleSection);
178 アイテム要素.AppendChild(アイテムタイトル要素);
179
180 //作成日
181 XmlElement pubDateElement = xmlDocument.CreateElement("pubDate");
182 pubDateElement.InnerText = XmlConvert.ToString(item.pubDate.ToUniversalTime(), "yyyy-MM-ddTHH:mm:ss");
183 項目要素.AppendChild(pubDateElement);
184
185 //接続を追加
186 XmlElement itemLinkElement = xmlDocument.CreateElement("リンク");
187 itemLinkElement.InnerText = item.link;
188 アイテム要素.AppendChild(アイテムリンク要素);
189
190 //説明を作成する
191 XmlElement itemDescriptionElement = xmlDocument.CreateElement("説明");
192 XmlCDataSection cDataDescriptionSection = xmlDocument.CreateCDataSection(item.description);
193 itemDescriptionElement.AppendChild(cDataDescriptionSection);
194 アイテム要素.AppendChild(アイテム説明要素);
195
196
197 //タイプを作成する
198 XmlElement itemcatalogElement = xmlDocument.CreateElement("カタログ");
199 itemcatalogElement.InnerText = item.catalog;
200 itemElement.AppendChild(itemcatalogElement);
201
202 //RssItemをチャネルノードに追加します
203 チャンネル要素.AppendChild(アイテム要素);
204
205 xmlDocument を返します。
206 }
207 }
208}
特定のニーズに応じて、まずデータをリストに読み取り、次にリストを走査し、上記のメソッドを呼び出して、Xml 文字列を生成できます。
この文字列は、RS によって使用される XML 文字列です。また、aspx ファイルを入力し、<link type="application/rss+xml" rel="alternate" href="rssfeed.aspx"> を使用して RSS ファイルを呼び出すこともできます。これにより、トイレなどのソフトウェアが自動的にプロンプトを表示します。 RRS 情報については