项目需要,高分悬赏asp.net中实现RSS订阅

我意纵横 2012-08-16 11:36:32
其实我是搞java的,但项目需要,搞一阵子的asp.net,目前需要做一个asp.net的RSS订阅功能, 功能不难,就是一个管理RSS资源列表功能,在这里,点击获取RSS最新数据,就将RSS数据添加到数据库中,我在网上看了下,都不是很具体,因为本人对asp.net了解不是很多,所以请各位能尽量给些完整的实现,感激不尽
...全文
120 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
我意纵横 2012-08-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

http://www.csharpwin.com/dotnetspace/10597r8222.shtml
这个你可以参考下。
[/Quote]

最好可以说下自己的见解和例子
ybyjcel 2012-08-16
  • 打赏
  • 举报
回复
http://www.csharpwin.com/dotnetspace/10597r8222.shtml
这个你可以参考下。
我意纵横 2012-08-16
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

1using System;
2using System.Xml;
3using System.Collections;
4using System.Globalization;
5using System.Web;
6
7namespace BLRL
8{
9 /// <summary>
10 /// Summary description for Rss.
1……
[/Quote]

有没有具体例子。。。
杰拉尔 2012-08-16
  • 打赏
  • 举报
回复
1using System;
2using System.Xml;
3using System.Collections;
4using System.Globalization;
5using System.Web;
6
7namespace BLRL
8{
9 /// <summary>
10 /// Summary description for Rss.
11 /// </summary>
12 public class 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 struct RssChannel
19 {
20 public string title;//标题
21 public string link;//连接
22 public string language;//语言
23 public string description;//描述
24 public string webMaster;//发布者
25 }
26
27 //RSS图片信息
28 struct RssImage
29 {
30 public string url;//地址
31 public string title;//标题
32 public int height ;//高度
33 public int width;//长度
34 }
35
36 //RSS项结构
37 struct RssItem
38 {
39 public string title;//标题
40 public string catalog;//类别
41 public string link;//连接
42 public DateTime pubDate;//发布日期
43 public string description;//描述
44
45 }
46 public Rss()
47 {
48 //
49 // TODO: Add constructor logic here
50 //
51 }
52 /// <summary>
53 ///添加rss版本信息
54 /// </summary>
55 /// <param name="xmlDocument"></param>
56 /// <returns></returns>
57 public static 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 return xmlDocument;
85 }
86
87 /// <summary>
88 /// 添加频道
89 /// </summary>
90 /// <param name="xmlDocument"></param>
91 /// <param name="channel"></param>
92 /// <returns></returns>
93 private static XmlDocument AddRssChannel( XmlDocument xmlDocument, RssChannel channel)
94 {
95 XmlElement channelElement = xmlDocument.CreateElement("channel");
96 XmlNode rssElement = xmlDocument.SelectSingleNode("rss");
97
98 rssElement.AppendChild(channelElement);
99
100 //添加标题
101 XmlElement channelTitleElement = xmlDocument.CreateElement("title");
102 channelTitleElement.InnerText = channel.title;
103 channelElement.AppendChild(channelTitleElement);
104
105 //添加连接
106 XmlElement channelLinkElement = xmlDocument.CreateElement("link");
107 channelLinkElement.InnerText = channel.link;
108 channelElement.AppendChild(channelLinkElement);
109
110 //添加描述
111 XmlElement channelDescriptionElement = xmlDocument.CreateElement("description");
112 XmlCDataSection cDataDescriptionSection = xmlDocument.CreateCDataSection(channel.description);
113 channelDescriptionElement.AppendChild(cDataDescriptionSection);
114 channelElement.AppendChild(channelDescriptionElement);
115
116 //添加语言
117 XmlElement languageElement = xmlDocument.CreateElement("language");
118 languageElement.InnerText = channel.language;
119 channelElement.AppendChild(languageElement);
120
121 //添加发布者
122 XmlElement webMasterElement = xmlDocument.CreateElement("webMaster");
123 webMasterElement.InnerText = channel.webMaster;
124 channelElement.AppendChild(webMasterElement);
125
126 return xmlDocument;
127 }
128
129
130 //添加RssImage
131 private static XmlDocument AddRssImage(XmlDocument xmlDocument, RssImage img)
132 {
133 XmlElement imgElement = xmlDocument.CreateElement("image");
134 XmlNode channelElement = xmlDocument.SelectSingleNode("rss/channel");
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("width");
153 imageWidthElement.InnerText = img.width.ToString();
154 imgElement.AppendChild(imageWidthElement);
155
156 //将图像节点添加到频道节点里面
157 channelElement.AppendChild(imgElement);
158 return xmlDocument;
159
160 }
161
162
163 /// <summary>
164 /// 添加项信息
165 /// </summary>
166 /// <param name="xmlDocument"></param>
167 /// <param name="item"></param>
168 /// <returns></returns>
169 private static XmlDocument AddRssItem (XmlDocument xmlDocument, RssItem item)
170 {
171 XmlElement itemElement = xmlDocument.CreateElement("item");
172 XmlNode channelElement = xmlDocument.SelectSingleNode("rss/channel");
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 = item.link;
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 channelElement.AppendChild(itemElement);
204
205 return xmlDocument;
206 }
207 }
208}
根据特定的需要,可以先将数据读取到列表里面,然后遍历列表,调用上述方法,生成Xml字符串。
这个字符串就是RS用到XML字符串了。也可以入aspx文件,然后用<link type="application/rss+xml" rel="alternate" href="rssfeed.aspx">
e251396 2012-08-16
  • 打赏
  • 举报
回复
不就是输出XML格式么?

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧