Web 2.0 ist ein Internetmodell der neuen Generation, das sich auf die Personalisierung konzentriert, dargestellt durch Blog, Wike, Tag, RSS und andere Technologien, scheint im Vergleich zu Begriffen wie Blog nicht allzu beliebt zu sein. Beim Öffnen einer Webseite gibt es jedoch
immer noch auffällige Symbole wie RSS und
, wie folgt:
1System verwenden;
2using System.Xml;
3using System.Collections;
4using System.Globalization;
5mit System.Web;
6
7Namespace BLRL
8{
9 /// <Zusammenfassung>
10 /// Zusammenfassende Beschreibung für Rss.
11 /// </summary>
12 öffentliche Klasse Rss
13 {
14 const string dublinCoreNamespaceUri = @" http://purl.org/dc/elements/1.1/ ";
15 const string slashNamespaceUri = @" http://purl.org/rss/1.0/modules/slash/ ";
16 const string syndicationNamespaceUri = @" http://purl.org/rss/1.0/modules/syndication/ ";
17 //RSS-Kanalstruktur
18 Struktur RssChannel
19 {
20 öffentliche Zeichenfolge title;//title
21 öffentlicher String-Link;//Verbindung
22 öffentliche Zeichenfolgensprache;//Sprache
23 öffentliche Zeichenfolgenbeschreibung;//description
24 öffentliche Zeichenfolge webMaster;//Publisher
25}
26
27 //RSS-Bildinformationen
28 struct RssImage
29 {
30 öffentliche String-URL;//Adresse
31 öffentlicher String title;//title
32 public int height;//height
33 public int width;//length
34}
35
36 //RSS-Elementstruktur
37 struct RssItem
38 {
39 öffentlicher String title;//title
40 öffentlicher String-Katalog;//Kategorie
41 öffentlicher String-Link;//Verbindung
42 public DateTime pubDate;//Veröffentlichungsdatum
43 öffentliche Zeichenfolgenbeschreibung;//description
44
45 }
46 öffentliches Rss()
47 {
48 //
49 // TODO: Konstruktorlogik hier hinzufügen
50 //
51 }
52 /// <Zusammenfassung>
53 ///RSS-Versionsinformationen hinzufügen
54 /// </summary>
55 /// <param name="xmlDocument"></param>
56 /// <returns></returns>
57 öffentliches statisches XmlDocument AddRssPreamble(XmlDocument xmlDocument)
58 {
59 //Deklaration zum Erstellen von XML der Version 1.0
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("version");
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 slashNamespaceUriAttribute.InnerText = slashNamespaceUri;
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 return xmlDocument;
85}
86
87 /// <Zusammenfassung>
88 /// Kanal hinzufügen
89 /// </summary>
90 /// <param name="xmlDocument"></param>
91 /// <param name="channel"></param>
92 /// <returns></returns>
93 privates statisches XmlDocument AddRssChannel(XmlDocument xmlDocument, RssChannel-Kanal)
94 {
95 XmlElement channelElement = xmlDocument.CreateElement("channel");
96 XmlNode rssElement = xmlDocument.SelectSingleNode("rss");
97
98 rssElement.AppendChild(channelElement);
99
100 //Titel hinzufügen
101 XmlElement channelTitleElement = xmlDocument.CreateElement("title");
102channelTitleElement.InnerText =channel.title;
103channelElement.AppendChild(channelTitleElement);
104
105 //Verbindung hinzufügen
106 XmlElementchannelLinkElement = xmlDocument.CreateElement("link");
107channelLinkElement.InnerText =channel.link;
108channelElement.AppendChild(channelLinkElement);
109
110 //Beschreibung hinzufügen
111 XmlElementchannelDescriptionElement = xmlDocument.CreateElement("description");
112 XmlCDataSection cDataDescriptionSection = xmlDocument.CreateCDataSection(channel.description);
113channelDescriptionElement.AppendChild(cDataDescriptionSection);
114channelElement.AppendChild(channelDescriptionElement);
115
116 //Sprache hinzufügen
117 XmlElement languageElement = xmlDocument.CreateElement("Sprache");
118 languageElement.InnerText = Channel.Language;
119 ChannelElement.AppendChild(SpracheElement);
120
121 //Herausgeber hinzufügen
122 XmlElement webMasterElement = xmlDocument.CreateElement("webMaster");
123 webMasterElement.InnerText =channel.webMaster;
124channelElement.AppendChild(webMasterElement);
125
126 return xmlDocument;
127 }
128
129
130 // RssImage hinzufügen
131 privates statisches XmlDocument AddRssImage(XmlDocument xmlDocument, RssImage img)
132 {
133 XmlElement imgElement = xmlDocument.CreateElement("image");
134 XmlNodechannelElement = xmlDocument.SelectSingleNode("rss/channel");
135
136 //Titel erstellen
137 XmlElement imageTitleElement = xmlDocument.CreateElement("title");
138 imageTitleElement.InnerText = img.title;
139 imgElement.AppendChild(imageTitleElement);
140
141 //Adresse erstellen
142 XmlElement imageUrlElement = xmlDocument.CreateElement("url");
143 imageUrlElement.InnerText = img.url;
144 imgElement.AppendChild(imageUrlElement);
145
146 //Höhe erzeugen
147 XmlElement imageHeightElement = xmlDocument.CreateElement("height");
148 imageHeightElement.InnerText = img.height.ToString();
149 imgElement.AppendChild(imageHeightElement);
150
151 //Länge erstellen
152 XmlElement imageWidthElement = xmlDocument.CreateElement("width");
153 imageWidthElement.InnerText = img.width.ToString();
154 imgElement.AppendChild(imageWidthElement);
155
156 // Den Bildknoten zum Kanalknoten hinzufügen
157channelElement.AppendChild(imgElement);
158 return xmlDocument;
159
160 }
161
162
163 /// <Zusammenfassung>
164 /// Artikelinformationen hinzufügen
165 /// </summary>
166 /// <param name="xmlDocument"></param>
167 /// <param name="item"></param>
168 /// <returns></returns>
169 privates statisches XmlDocument AddRssItem (XmlDocument xmlDocument, RssItem-Element)
170 {
171 XmlElement itemElement = xmlDocument.CreateElement("item");
172 XmlNodechannelElement = xmlDocument.SelectSingleNode("rss/channel");
173
174 //Titel erstellen
175 XmlElement itemTitleElement = xmlDocument.CreateElement("title");
176 XmlCDataSection cDataTitleSection = xmlDocument.CreateCDataSection(item.title);
177 itemTitleElement.AppendChild(cDataTitleSection);
178 itemElement.AppendChild(itemTitleElement);
179
180 //Erstellungsdatum
181 XmlElement pubDateElement = xmlDocument.CreateElement("pubDate");
182 pubDateElement.InnerText = XmlConvert.ToString(item.pubDate.ToUniversalTime(), "yyyy-MM-ddTHH:mm:ss");
183 itemElement.AppendChild(pubDateElement);
184
185 //Verbindung hinzufügen
186 XmlElement itemLinkElement = xmlDocument.CreateElement("link");
187 itemLinkElement.InnerText = item.link;
188 itemElement.AppendChild(itemLinkElement);
189
190 //Beschreibung erstellen
191 XmlElement itemDescriptionElement = xmlDocument.CreateElement("description");
192 XmlCDataSection cDataDescriptionSection = xmlDocument.CreateCDataSection(item.description);
193 itemDescriptionElement.AppendChild(cDataDescriptionSection);
194 itemElement.AppendChild(itemDescriptionElement);
195
196
197 //Typ erstellen
198 XmlElement itemcatalogElement = xmlDocument.CreateElement("catalog");
199 itemcatalogElement.InnerText = item.catalog;
200 itemElement.AppendChild(itemcatalogElement);
201
202 // RssItem zum Kanalknoten hinzufügen
203channelElement.AppendChild(itemElement);
204
205 return xmlDocument;
206 }
207 }
208}
Je nach Bedarf können Sie zunächst die Daten in die Liste einlesen, dann die Liste durchlaufen, die obige Methode aufrufen und eine XML-Zeichenfolge generieren.
Diese Zeichenfolge ist die von RS verwendete XML-Zeichenfolge. Sie können auch eine ASPX-Datei eingeben und dann <link type="application/rss+xml" rel="alternate" href="rssfeed.aspx"> verwenden, um die RSS-Datei aufzurufen, und Software wie die Toilette wird automatisch dazu aufgefordert für RRS-Informationen