天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

使用linq to xml 快速創(chuàng)建自己的Rss

首先引用網(wǎng)絡(luò)上不知道是誰的一段文字來講述下什么是linq to xml 如果已經(jīng)熟悉的就直接跳過這段: 

LINQ to XML 是一種啟用了 LINQ 的內(nèi)存 XML 編程接口,使用它,可以在 .NET Framework 編程語言中處理 XML

  它將 XML 文檔置于內(nèi)存中,這一點(diǎn)很像文檔對(duì)象模型 (DOM) 您可以查詢和修改 XML 文檔,修改之后,可以將其另存為文件,也可以將其序列化然后通過網(wǎng)絡(luò)發(fā)送。 但是,LINQ to XML DOM 不同: 它提供一種新的對(duì)象模型,這是一種更輕量的模型,使用也更方便,這種模型利用了 Visual C# 2008 在語言方面的改進(jìn)。

  LINQ to XML 最重要的優(yōu)勢(shì)是它與 Language-Integrated Query (LINQ) 的集成。 由于實(shí)現(xiàn)了這一集成,因此,可以對(duì)內(nèi)存 XML 文檔編寫查詢,以檢索元素和屬性的集合。 LINQ to XML 的查詢功能在功能上(盡管不是在語法上) XPath XQuery 具有可比性。 Visual C# 2008 集成 LINQ 后,可提供更強(qiáng)的類型化功能、編譯時(shí)檢查和改進(jìn)的調(diào)試器支持。

  通過將查詢結(jié)果用作 XElement XAttribute 對(duì)象構(gòu)造函數(shù)的參數(shù),實(shí)現(xiàn)了一種功能強(qiáng)大的創(chuàng)建 XML 樹的方法。 這種方法稱為函數(shù)構(gòu)造,利用這種方法,開發(fā)人員可以方便地將 XML 樹從一種形狀轉(zhuǎn)換為另一種形狀。

  LINQ to XML 提供了改進(jìn)的 XML 編程接口,這一點(diǎn)可能與 LINQ to XML LINQ 功能同樣重要。 通過 LINQ to XML,對(duì) XML 編程時(shí),您可以實(shí)現(xiàn)任何預(yù)期的操作,包括:

·                                   從文件或流加載 XML

·                                   將 XML 序列化為文件或流。

·                                   使用函數(shù)構(gòu)造從頭開始創(chuàng)建 XML

·                                   使用類似 XPath 的軸查詢 XML

·                                   使用 AddRemoveReplaceWith SetValue 等方法對(duì)內(nèi)存 XML 樹進(jìn)行操作。

·                                   使用 XSD 驗(yàn)證 XML 樹。

·                                   使用這些功能的組合,可將 XML 樹從一種形狀轉(zhuǎn)換為另一種形狀。

好了,我開始廢話,首先說一下呢,我技術(shù)平平,寫出來的文章自然也是不怎么高水平的,但是都是我自己實(shí)際項(xiàng)目中總結(jié)出來的。
錯(cuò)誤之處還請(qǐng)大家指正,轉(zhuǎn)載的朋友請(qǐng)注明出處:
『半途』

現(xiàn)在言歸正傳說我們的正題

首先我們創(chuàng)建一個(gè)新窗體,這里以我的網(wǎng)站為例,我們起名叫Rss.ASPx

創(chuàng)建完成后,如果Rss數(shù)據(jù)源是XML實(shí)際文檔,就跳過下面一步,如果Rss數(shù)據(jù)源是ASPx文件

請(qǐng)?jiān)趧?chuàng)建完新頁面后切換到源視圖

保留這一行:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Rss.ASPx.cs" Inherits="Rss" %>

其余的html代碼全部刪除

然后在cs里創(chuàng)建方法createRss()

具體看代碼和注釋:

public void createRss()

    {

        //首先從數(shù)據(jù)庫里讀出所需要的數(shù)據(jù)

        XXXXContext bd = new XXXXContext();

        var sq = from p in bd.news orderby p.ID descending select new { p.ID, p.title,p.cont, p.in_date,p.n_type };

        //開始創(chuàng)建xml  對(duì)于Rss的規(guī)范我這里不再啰嗦了,不明白的可以去網(wǎng)上查一下

        //下面這一部分為xml里的聲明部分,foreach開始循環(huán)item,sq的數(shù)據(jù)循環(huán)寫入xml

        XElement contacts = new XElement("rss", new XAttribute("version", "2.0"),

                   new XElement("channel",

                       new XElement("title", "半途的Rss"),

                       new XElement("link", "http://www.bantool.cn"),

                       new XElement("description", "C#,linq,vs2008"),

                       new XElement("language", "zh_cn"),

                       new XElement("copyright", "Copyright 2008 bantool"),

                       new XElement("webMaster", "[email protected]")));

         //這里開始循環(huán)寫數(shù)據(jù)

        foreach (var p in sq)

        {

            contacts.Element("channel").Add(new XElement("item",

                             new XElement("title", p.title),

                             new XElement("link", "http://www.bantool.cn/news" + p.ID + ".bantool"),

                             new XElement("description", p.cont),

                             new XElement("category", p.n_type),

                             new XElement("pubDate", p.in_date)));

        }

        //這里開始操作xml是寫入具體的xml文件還是直接輸出

        //如果是寫入文件的話用這個(gè)

        //contacts.Save("文件路徑");

        //如果是輸出的諙,

        //先設(shè)好輸出的類型"text/xml"

        Response.ContentType = "text/xml";

        using (XmlWriter writer = new XmlTextWriter(Response.OutputStream, Encoding.UTF8))

            //contactsWriteTo方法來寫

            contacts.WriteTo(writer);

        //這樣就OK

}   

 

好了,這個(gè)樣子就完成了,看我們的linq多么強(qiáng)大!呵呵

如果有錯(cuò)誤還請(qǐng)大家指正,不明白的地方請(qǐng)?zhí)岢鰜泶蠹矣懻?/span>

演示地址:http://www.bantool.cn/Rss.ASPx


文章來源:http://www.bantool.cn/news33.bantool

it知識(shí)庫使用linq to xml 快速創(chuàng)建自己的Rss,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 亚州综人网 | 免费人成网站在线观看10分钟 | 18禁裸乳无遮挡免费网站 | 浪潮AV色综合久久天堂 | 久久香蕉国产线看观看 | 全黄h全肉短篇禁乱np | 97色伦图片7778久久 | 儿媳妇完整版视频播放免费观看 | 一本色道久久综合亚洲精品蜜桃冫 | 亚洲一区自拍高清亚洲精品 | 欧美亚洲日本日韩在线 | 999久久免费高清热精品 | 在线观看a视频 | 欧洲内射XXX高清 | 在线成年av动漫电影 | 肉色欧美久久久久久久蜜桃 | 草莓西瓜樱桃香蕉直播视频 | 91se在线看片国产免费观看 | 美妇教师双飞后菊 | 无遮18禁在线永久免费观看挡 | 肉动漫无修在线播放 | 香港论理午夜电影网 | 日本漫画母亲口工子全彩 | 久久这里只有精品1 | 扒开黑女人p大荫蒂老女人 扒开粉嫩的小缝末成年小美女 | 无码欧美喷潮福利XXXX | 欧美色图14p | 含羞草免费完整视频在线观看 | 伊人电院网 | 芒果视频看片在线观看 | 沦为公交两奶头春药高潮迭起 | 亚洲精品入口一区二区乱麻豆精品 | 亚洲人成在线观看一区二区 | 福利免费观看体检区 | 成人免费公开视频 | 久久青草免费线观最新 | 一边啪啪的一边呻吟声口述 | 九九精品国产亚洲A片无码 九九精彩视频在线观看视频 | 四虎影视国产精品亚洲精品 | 久久国内精品视频 | 忘忧草在线社区WWW日本直播 |