웹 2.0은 블로그(Blog), 위크(Wike), 태그(Tag), RSS 등의 기술로 대표되는 개인화 중심의 차세대 인터넷 모델이다. 그러나 웹페이지를 열면 다음과 같이
RSS, 와 같은 눈길을 끄는 아이콘이 여전히
있습니다 .
1사용 시스템;
2System.Xml을 사용합니다.
3System.Collections 사용;
4System.Globalization 사용;
5System.Web 사용;
6
7네임스페이스 BLRL
8{
9 /// <요약>
10 /// Rss에 대한 요약 설명입니다.
11 /// </summary>
12 공개 수업 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 채널 구조
18 구조체 RssChannel
19 {
20 공개 문자열 제목;//제목
21 공개 문자열 링크;//연결
22 공개 문자열 언어;//언어
23 공개 문자열 설명;//설명
24 공개 문자열 webMaster;//Publisher
25}
26
27 //RSS 사진 정보
28 구조체 RssImage
29 {
30 공개 문자열 URL;//주소
31 공개 문자열 제목;//제목
32 공개 정수 높이;//높이
33 공개 정수 너비;//길이
34}
35
36 //RSS 항목 구조
37 구조체 RssItem
38 {
39 공개 문자열 제목;//제목
40 공개 문자열 카탈로그;//카테고리
41 공개 문자열 링크;//연결
42 공개 DateTime pubDate;//게시 날짜
43 공개 문자열 설명;//설명
44
45 }
46 공개 RSS()
47 {
48 //
49 // TODO: 여기에 생성자 논리를 추가합니다.
50 //
51 }
52 /// <요약>
53 ///rss 버전 정보 추가
54 /// </summary>
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("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 xmlDocument를 반환합니다.
85}
86
87 /// <요약>
88 /// 채널 추가
89 /// </summary>
90 /// <param name="xmlDocument"></param>
91 /// <param name="채널"></param>
92 /// <반환></반환>
93 개인 정적 XmlDocument AddRssChannel(XmlDocument xmlDocument, RssChannel 채널)
94 {
95 XmlElement 채널 요소 = xmlDocument.CreateElement("채널");
96 XmlNode rssElement = xmlDocument.SelectSingleNode("rss");
97
98 rssElement.AppendChild(채널요소);
99
100 //제목 추가
101 XmlElement 채널TitleElement = xmlDocument.CreateElement("제목");
102 채널제목요소.InnerText = 채널.제목;
103 채널요소.AppendChild(channelTitleElement);
104
105 //연결 추가
106 XmlElement 채널LinkElement = xmlDocument.CreateElement("link");
107 채널LinkElement.InnerText = 채널.링크;
108 채널요소.AppendChild(채널링크요소);
109
110 //설명 추가
111 XmlElement 채널DescriptionElement = xmlDocument.CreateElement("description");
112 XmlCDataSection cDataDescriptionSection = xmlDocument.CreateCDataSection(channel.description);
113 채널DescriptionElement.AppendChild(cDataDescriptionSection);
114 채널요소.AppendChild(채널설명요소);
115
116 //언어 추가
117 XmlElement 언어 요소 = xmlDocument.CreateElement("언어");
118 언어요소.InnerText = 채널.언어;
119 채널요소.AppendChild(언어요소);
120
121 //게시자 추가
122 XmlElement webMasterElement = xmlDocument.CreateElement("webMaster");
123 webMasterElement.InnerText = 채널.웹마스터;
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 XmlNode 채널 요소 = xmlDocument.SelectSingleNode("rss/채널");
135
136 //제목 생성
137 XmlElement imageTitleElement = xmlDocument.CreateElement("title");
138 imageTitleElement.InnerText = img.title;
139 imgElement.AppendChild(imageTitleElement);
140
141 //주소 생성
142 XmlElement imageUrlElement = xmlDocument.CreateElement("url");
143 imageUrlElement.InnerText = img.url;
144 imgElement.AppendChild(imageUrlElement);
145
146 //높이 생성
147 XmlElement imageHeightElement = xmlDocument.CreateElement("height");
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(이미지WidthElement);
155
156 //채널 노드에 이미지 노드 추가
157 채널요소.AppendChild(imgElement);
158 xmlDocument를 반환합니다.
159
160 }
161
162
163 /// <요약>
164 /// 아이템 정보 추가
165 /// </summary>
166 /// <param name="xmlDocument"></param>
167 /// <param name="item"></param>
168 /// <반환></반환>
169 개인 정적 XmlDocument AddRssItem(XmlDocument xmlDocument, RssItem 항목)
170 {
171 XmlElement itemElement = xmlDocument.CreateElement("item");
172 XmlNode 채널 요소 = xmlDocument.SelectSingleNode("rss/채널");
173
174 //제목 만들기
175 XmlElement itemTitleElement = xmlDocument.CreateElement("title");
176 XmlCDataSection cDataTitleSection = xmlDocument.CreateCDataSection(item.title);
177 itemTitleElement.AppendChild(cDataTitleSection);
178 itemElement.AppendChild(itemTitleElement);
179
180 //생성 날짜
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 //연결 추가
186 XmlElement itemLinkElement = xmlDocument.CreateElement("link");
187 itemLinkElement.InnerText = 아이템.링크;
188 itemElement.AppendChild(itemLinkElement);
189
190 //설명 작성
191 XmlElement itemDescriptionElement = xmlDocument.CreateElement("description");
192 XmlCDataSection cDataDescriptionSection = xmlDocument.CreateCDataSection(item.description);
193 itemDescriptionElement.AppendChild(cDataDescriptionSection);
194 itemElement.AppendChild(itemDescriptionElement);
195
196
197 //유형 생성
198 XmlElement itemcatalogElement = xmlDocument.CreateElement("catalog");
199 itemcatalogElement.InnerText = item.catalog;
200 itemElement.AppendChild(itemcatalogElement);
201
202 //채널 노드에 RssItem 추가
203 채널요소.AppendChild(itemElement);
204
205 xmlDocument를 반환합니다.
206 }
207 }
208}
특정 요구 사항에 따라 먼저 목록에 데이터를 읽어온 다음 목록을 탐색하고 위 메서드를 호출하여 Xml 문자열을 생성할 수 있습니다.
이 문자열은 RS에서 사용하는 XML 문자열입니다. aspx 파일을 입력한 다음 <link type="application/rss+xml" rel="alternate" href="rssfeed.aspx">를 사용하여 RSS 파일을 호출하면 화장실과 같은 소프트웨어가 자동으로 메시지를 표시합니다. RRS 정보