一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP.NET教程 - 解析linq to xml操作XML的示例分析

解析linq to xml操作XML的示例分析

2019-11-07 12:15asp.net教程網 ASP.NET教程

本篇文章是對linq to xml操作XML的示例進行了詳細的分析介紹,需要的朋友參考下

.Net中的System.Xml.Linq命名空間提供了linq to xml的支持。這個命名空間中的XDocument,XElement以及XText,XAttribute提供了讀寫xml文檔的關鍵方法。
1. 使用linq to xml寫xml:
使用XDocument的構造函數可以構造一個Xml文檔對象;使用XElement對象可以構造一個xml節點元素,使用XAttribute構造函數可以構造元素的屬性;使用XText構造函數可以構造節點內的文本。
如下實例代碼: 

復制代碼代碼如下:


class Program
{
    static void Main(string[] args)
    {          
        var xDoc = new XDocument(new XElement( "root",
            new XElement("dog",
                new XText("dog said black is a beautify color"),
                new XAttribute("color", "black")),
            new XElement("cat"),
            new XElement("pig", "pig is great")));

        //xDoc輸出xml的encoding是系統默認編碼,對于簡體中文操作系統是gb2312
        //默認是縮進格式化的xml,而無須格式化設置
        xDoc.Save(Console.Out);

        Console.Read();
    }
}


上面代碼將輸出如下Xml: 

復制代碼代碼如下:


<?xml version="1.0" encoding="gb2312"?>
<root>
  <dog color="black">dog said black is a beautify color</dog>
  <cat />
  <pig>pig is great</pig>
</root>


可以看出linq to xml比XmlDocument和XmlWriter要方便很多。
2. 使用linq to xml 讀取xml
Linq是從集合中查詢對象,在linq to xml中的集合是通過XElement的Elements(),Elements(string name),以及Descendants、DescendantsAndSelf、Ancestors、AncestorsAndSelf的幾個重載方法中獲得。
獲得XElement集合之后,可以通過XElement的Attribute(string name)方法獲得元素的屬性值,可以通過XElement的Value屬性獲得節點的文本值;使用linq就可以方便的做查詢,做篩選排序了
還是上例中的xml,我們要讀取root的所有字節點,并打印出來,如下代碼:

復制代碼代碼如下:


class Program
{
    static void Main(string[] args)
    {

        var xDoc = new XDocument(new XElement( "root",
            new XElement("dog",
                new XText("dog said black is a beautify color"),
                new XAttribute("color", "black")),
            new XElement("cat"),
            new XElement("pig", "pig is great")));

        //xDoc輸出xml的encoding是系統默認編碼,對于簡體中文操作系統是gb2312
        //默認是縮進格式化的xml,而無須格式化設置
        xDoc.Save(Console.Out);

        Console.WriteLine();

        var query = from item in xDoc.Element( "root").Elements()
                    select new
                    {
                        TypeName    = item.Name,
                        Saying      = item.Value,
                        Color       = item.Attribute("color") == null?(string)null:item.Attribute("color").Value
                    };

 
        foreach (var item in query)
        {
            Console.WriteLine("{0} 's color is {1},{0} said {2}",item.TypeName,item.Color??"Unknown",item.Saying??"nothing");
        }

        Console.Read();
    }
}


3. Linq to xml簡單的應用
應用需求: 讀取博客園的rss,然后在頁面上輸出最新的10篇博客信息
實現要點: 通過XDocument的Load靜態方法載入Xml,通過linq查詢最新10條數據

代碼如下:

復制代碼代碼如下:


<%@ Page Language="C#" AutoEventWireup="true" %>
<script runat="server">
    protected override void OnLoad(EventArgs e)
    {
        //實際應用,通過讀取博客園的RSS生成Html代碼顯示最新的博客列表
        //使用XDocument的Load靜態方法載入Xml
        var rssXDoc = XDocument.Load("//www.ythuaji.com.cn");

        //使用linq to xml查詢前10條新博客
        var queryBlogs = (from blog in rssXDoc.Descendants("item")
                          select new
                          {
                              /> C#的發展讓讀寫Xml越來越簡單了。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 80日本xxxxxxxxx96 7个黑人玩北条麻妃 | 2021国产麻豆剧传媒剧情动漫 | 欧美同志video 在线观看 | 亚洲精品中文 | 亚洲男人天堂影院 | 美女视频91 | 国产青草视频在线观看免费影院 | 天堂网在线网站成人午夜网站 | 石原莉奈adn093店长未婚妻 | 妹妹骑上来蹭着蹭着就射了 | 91素人约啪 | 亚洲精品高清中文字幕完整版 | 香蕉视频在线观看网址 | 色在线亚洲视频www 色欲麻豆国产福利精品 | 99精品视频一区在线观看miya | 免费看片aⅴ免费大片 | 饭冈加奈子在线播放观看 | 欧美精品亚洲精品日韩专区va | 十八女下面流水不遮免费 | 亚洲欧洲日产国码无码av | 免看一级一片一在线看 | 日本中文字幕永久在线 | 人妖女天堂视频在线96 | 日日操美女 | 日本高清不卡一区久久精品 | 国产精品久久久 | 狠狠色婷婷日日综合五月 | avove本人照片 | 国产chinese男男gaygay | a毛片免费观看完整 | 人皮高跟鞋在线观看 | 国产日产精品久久久久快鸭 | 69日本xxxxxxxxx98| 国产一区二区在线免费观看 | 亚洲成人视屏 | 我和岳的性事小说 | 999久久免费高清热精品 | 无码射肉在线播放视频 | 无人影院在线播放 | 天天色天天综合网 | 99热综合在线|