XmlTextWriter
对象来组合我们自己的RSS文件。首先我们要知道的是XML的格式,就是一对闭合的标签,顶端有个<xml/>标记包含字符集及版本等一般采用UTF-8,版本为1.0。当然RSS文档标签肯定就是RSS了,由于RSS有多个版本以此也要加上版本,可以声明一些命名空间(?...)。(注意:XML可是大小写敏感的哦)
1 <?xml version="1.0" encoding="utf-8"?>
2 <rss version="2.0">
3 <channel>
4 <title></title>
5 <link></link>
6 <description></description>
7
8
9 <item>
10
11 </item>
12 </channel>
13 </rss>
2 <rss version="2.0">
3 <channel>
4 <title></title>
5 <link></link>
6 <description></description>
7
8
9 <item>
10
11 </item>
12 </channel>
13 </rss>
以上就是RSS2.0的基本格式,列出的都是必须的标记,当然还有很多可选标记。我们可以通过下面的代码来完成我们的RSS,当然我们一般都是从数据库中取出符合的记录然后通过下列方法来输出订阅内容。
1 // 清除输出缓存
2 Response.Clear();
3 // 设置输出类型
4 Response.ContentType = "text/xml";
5
6 // 初始化XmlTextWriter类
7 XmlTextWriter writer = new XmlTextWriter(Response.OutputStream, Encoding.UTF8);
8
9 // 写入<?xml version="1.0" encoding="utf-8"?>
10 writer.WriteStartDocument();
11
12 // 写入<rss version="2.0">
13 writer.WriteStartElement("rss");
14 writer.WriteAttributeString("version", "2.0");
15
16 // 写入<channel>
17 writer.WriteStartElement("channel");
18
19 // 写入<title/><link/><description/>必须项,同时加入版权<copyright/>
20 writer.WriteElementString("title", ".NET人字拖");
21 writer.WriteElementString("link", "http://www.mshelper.cn/");
22 writer.WriteElementString("description", "我的博客");
23 writer.WriteElementString("copyright", "Copyright " + DateTime.Now.Year.ToString() + ". All rights reserved.");
24
25 // 循环输出item项。
26 while (statement)
27 {
28 writer.WriteStartElement("item");
29 writer.WriteElementString("title", "Rss标签");
30 writer.WriteElementString("description", "介绍");
31 writer.WriteElementString("link", "http://www.mshelper.cn/id=1");
32 writer.WriteEndElement();
33 }
34 dr.Close();
35
36 //闭合标签
37 writer.WriteEndElement();
38 writer.WriteEndElement();
39 writer.WriteEndDocument();
40 //释放缓存,输出。
41 writer.Flush();
42 writer.Close();
2 Response.Clear();
3 // 设置输出类型
4 Response.ContentType = "text/xml";
5
6 // 初始化XmlTextWriter类
7 XmlTextWriter writer = new XmlTextWriter(Response.OutputStream, Encoding.UTF8);
8
9 // 写入<?xml version="1.0" encoding="utf-8"?>
10 writer.WriteStartDocument();
11
12 // 写入<rss version="2.0">
13 writer.WriteStartElement("rss");
14 writer.WriteAttributeString("version", "2.0");
15
16 // 写入<channel>
17 writer.WriteStartElement("channel");
18
19 // 写入<title/><link/><description/>必须项,同时加入版权<copyright/>
20 writer.WriteElementString("title", ".NET人字拖");
21 writer.WriteElementString("link", "http://www.mshelper.cn/");
22 writer.WriteElementString("description", "我的博客");
23 writer.WriteElementString("copyright", "Copyright " + DateTime.Now.Year.ToString() + ". All rights reserved.");
24
25 // 循环输出item项。
26 while (statement)
27 {
28 writer.WriteStartElement("item");
29 writer.WriteElementString("title", "Rss标签");
30 writer.WriteElementString("description", "介绍");
31 writer.WriteElementString("link", "http://www.mshelper.cn/id=1");
32 writer.WriteEndElement();
33 }
34 dr.Close();
35
36 //闭合标签
37 writer.WriteEndElement();
38 writer.WriteEndElement();
39 writer.WriteEndDocument();
40 //释放缓存,输出。
41 writer.Flush();
42 writer.Close();
以上仅列出类部分标签,其实还有很多很实用的标签但是以上的标签对于一个普通的内容已经足够了。如果你想得到或了解其他的更多标签,你可以在RSS2.0 Specificaion(RSS2.0 at Harvard Law)里找到你所要的标签。很多感觉很抽象的东东其实你只要去靠近他,去温暖他慢慢的就会被你融化的:)