日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

C#与RSS亲密接触

發布時間:2023/11/27 生活经验 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#与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部分是為說明實例手工添加): <?xml version="1.0" encoding="utf-8" ?> <rss version="2.0"> <channel> <title>搜狐焦點新聞</title> <link>http://www.sohu.com</link> <description> <![CDATA[即時報道國內外時政大事,解讀環球焦點事件 ?]]> ?</description> <item id=""> ??????? <title></title> ?????????? <link></link> ? ???????? <pubDate>2006-10-15 21:59:36</pubDate> ?</item> <item id=""> ??? ????? <title></title> ?????????? <link></link> <pubDate>2006-10-15 10:33:53</pubDate> </item> ?<title>[中介][出售住宅]明發國際新城32293萬元/</title> ?<link>http://www.ewhouse.com/HouseInfo.aspx?publishId=3440</link> ?<pubDate>2006-10-12 10:50:18</pubDate> ?</item> </channel> </rss> 有幾點值得說明的有: 1、?CreateTextNode,即創建文本結點 有人習慣使用InnerText來添加結點中的文本,雖然結果是一樣的,但是要知道在DOM中文本也是結點,既然要符合DOM標準,就要進行到底! 2、?輸出 我在實例中使用XmlTextWriter輸出。 實際還可以使用如下: Response.ContentType = "application/xml"; // 輸出并按xml數據顯示 Response.Write(domDoc.InnerXml); 但是,使用XmlTextWriter輸出更快,所以也建議使用這個方法。

?

用XMLTextWriter方法實現如下:

XmlTextWriter writer = new XmlTextWriter(this.Response.OutputStream,System.Text.Encoding.UTF8);
writer.Formatting = Formatting.Indented;
writer.Indentation = 3;

writer.WriteStartDocument();

writer.WriteComment("Create using XmlTextWriter at " + DateTime.Now);

writer.WriteStartElement("rss");
writer.WriteAttributeString("version","2.0");

writer.WriteStartElement("channel");
writer.WriteElementString("title","搜狐焦點新聞");
writer.WriteElementString("link","http://www.sohu.com");
writer.WriteCData("即時報道國內外時政大事,解讀環球焦點事件");

//
//中間添加訪問數據庫部分...
//
writer.WriteEndElement();
writer.WriteEndElement();

writer.Flush();
writer.Close();

這個方法是把xml文件輸出 ,如果要保存為xml文件,第一句用這樣:
XmlTextWriter writer = new XmlTextWriter(Server.MapPath("grade.xml",null);??


?

總結

以上是生活随笔為你收集整理的C#与RSS亲密接触的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。