All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
Zend,Framework,1.0正式版即将发布_php资料_编程技术
ASP.NET,2.0发送电子邮件全面剖析之二_.net资料_编程技术
php用session做客户验证时的注意事项_[PHP教程]
.NET3.5和VS2008中的ASP.NET,AJAX_[Asp.Net教程]
你必须知道的.NET之class和struct_.net资料_编程技术
ASP.NET跨页面传值技巧总结_.net资料_编程技术
利用UrlRewrite,asp.net动态生成htm页面(补充说明)_[Asp.Net教程]
浅谈PHP服务器安全技巧七则_[PHP教程]
ASP.NET页面下载程序_[Asp.Net教程]
为您详解PHP开发工具的使用与分析_php资料_编程技术
Reading number is top 10 pictures
修电脑也有这么漂亮的美女
Summer is most suitable for young people to travel in China10
赵惟依写真1
LiXiang early youth photo
六种更聪明的工作方法
上传几张色图
A man's favorite things3--ZhouWeiTong
夕阳下的北京街道
各种囧况!玩游戏最不喜欢出现的十件事(点评)
这才是真正的人体艺术1
Download software ranking
Photoshop 8.0图象编辑软件
Boxer's Top ten classic battle5
C语言教程TXT
JSP+Ajax Web development typical examples
电车之狼R
Unix video tutorial17
天龙八部十二宫服务端
Jinling thirteen stock
Boxer's Top ten classic battle6
Boxer vs Yellow3
delv published in(发表于) 2014/1/10 6:30:01 Edit(编辑)
RSS制作(C#):使用XML,DOM_[Asp.Net教程]

RSS制作(C#):使用XML,DOM_[Asp.Net教程]

RSS制作(C#)-使用XML DOM_[Asp.Net教程]

网站的RSS一般以两种形式引用。一种是已经存在的xml文件,然后在更新数据库的时候对其进行更新,或者使用其它维护程序为其更新。另一种是在动态生成RSS文件,即在访问某一个地址的时候,服务端方法从数据库读取最新记录,生成RSS文件,返回给访问者。


现讲述动态生成RSS文件的方法。


动态生成RSS文件也基本有两种方法,一种是用字符串累加的方法,另一种是使用xml文档生成的方法。字符串累加的方法也比较简单,我也就不多说了,这里着重说一下生成XmlDocument的方法,包括各种节点的创建,属性的创建等。当然在此也有必要说明一下为什么采用后者,因为后者符合XML DOM标准,有利于你认识dom模型,并且构造速度更快,构造出的xml文档更不容易出错,其中有一些细节我也会做一些必要的讲述。


主方法如下:


private void WriteRSS()


{


XmlDocument domDoc = new XmlDocument();


XmlDeclaration nodeDeclar = domDoc.CreateXmlDeclaration("1.0", System.Text.Encoding.UTF8.BodyName, "yes");


domDoc.AppendChild(nodeDeclar);


//如果rss有样式表文件的话,加上这两句


XmlProcessingInstruction nodeStylesheet = domDoc.CreateProcessingInstruction("xml-stylesheet","type=\"text/css\" href=\"rss.css\"");


domDoc.AppendChild(nodeStylesheet);


XmlElement root = domDoc.CreateElement("rss");


root.SetAttribute("version","2.0"); //添加属性结点


domDoc.AppendChild(root);


XmlElement chnode = domDoc.CreateElement("channel");


root.AppendChild(chnode);


XmlElement element = domDoc.CreateElement("title");


XmlNode textNode = domDoc.CreateTextNode("搜狐焦点新闻"); //文本结点


element.AppendChild(textNode);


chnode.AppendChild(element);


element = domDoc.CreateElement("link");


textNode = domDoc.CreateTextNode("http://www.sohu.com");


element.AppendChild(textNode);


chnode.AppendChild(element);


element = domDoc.CreateElement("description"); //引用结点


XmlNode cDataNode = domDoc.CreateCDataSection("即时报道国内外时政大事,解读环球焦点事件");


element.AppendChild(cDataNode);


chnode.AppendChild(element);


DataTable dt = GetDataTab(); //访问数据库,获取要在rss中显示的记录


foreach(DataRow dr in dt.Rows)


{


element = domDoc.CreateElement("item");


//...


//创建内容结点,常见的如title,description,link,pubDate,创建方法同上


//...


chnode.AppendChild(element);


}


//输出


XmlTextWriter objTextWrite = new XmlTextWriter(this.Response.OutputStream,System.Text.Encoding.UTF8);


domDoc.WriteTo(objTextWrite);


objTextWrite.Flush();


objTextWrite.Close();


}


输出结果如下(item部分是为说明实例手工添加):





搜狐焦点新闻


http://www.sohu.com




]]>






2006-10-15 21:59:36






2006-10-15 10:33:53



[中介][出售住宅]明发国际新城3房2厅2卫93万元/套


http://www.ewhouse.com/HouseInfo.aspx?publishId=3440


2006-10-12 10:50:18





有几点值得说明的有:


1、 CreateTextNode,即创建文本结点


有人习惯使用InnerText来添加结点中的文本,虽然结果是一样的,但是要知道在DOM中文本也是结点,既然要符合DOM标准,就要进行到底!


2、 输出


我在实例中使用XmlTextWriter输出。


实际还可以使用如下:


Response.ContentType = "application/xml"; // 输出并按xml数据显示


Response.Write(domDoc.InnerXml);


但是,使用XmlTextWriter输出更快,所以也建议使用这个方法。


来源:网络







添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.