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

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

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("//m.ythuaji.com.cn");

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产精品久久国产三级国电话系列 | 任我行视频在线观看国语 | 毛片资源站 | 亚洲AV人无码综合在线观看蜜桃 | 娇妻终于接受了3p的调教 | 国产视频一区二区 | 邪恶肉肉全彩色无遮盖 | 久久久久久久久女黄 | 国产精品全国探花在线观看 | 久久最新地址获取 | 高跟丝袜人妖sissy露出调教 | 四虎影视在线永久免费观看 | 色姑娘导航 | 国产视频自拍一区 | 特色特色大片在线 | 欧美午夜精品 | 九九99香蕉在线视频免费 | 精品欧美一区二区三区四区 | 日本xxxx69hd | 天天射寡妇射 | 日本高清视频在线的 | 四虎影视在线影院在线观看观看 | 黄色a站 | 国产午夜精品一区二区三区不卡 | 亚洲精品国产自在现线最新 | 国产在线精品亚洲第一区香蕉 | 叛佛 作者满栀小说免费阅读 | japonensis日本护士 | 青草久久影院 | 99久久精品在免费线18 | 九九99九九精彩网站 | 免费大秀视频在线播放 | 古代翁熄乩伦小说h | segou视频在线观看 | 男女男精品视频网站 | 桥本有菜作品在线 | 狠狠五月天中文字幕 | 美女视频ww8888网网 | 91短视频在线观看2019 | 日韩精品亚洲专区在线影视 | 免费观看欧美一级高清 |