中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

linq to xml操作XML的示例分析

發布時間:2021-09-17 12:35:48 來源:億速云 閱讀:145 作者:chen 欄目:開發技術

本篇內容介紹了“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("https://www.jb51.net");

        //使用linq to xml查詢前10條新博客
        var queryBlogs = (from blog in rssXDoc.Descendants("item")
                          select new
                          {
                              Title = blog.Element("title").Value,
                              Url = blog.Element("link").Value,
                              PostTime = DateTime.Parse(blog.Element("pubDate").Value)
                          }).Take(20);
        repeaterBlogs.DataSource = queryBlogs;
        repeaterBlogs.DataBind();
        base.OnLoad(e);
    }
</script>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Linq to Xml 實例</title>
</head>
<body>
    <ol>
        <asp:Repeater ID="repeaterBlogs" EnableViewState="false" runat="server">
            <ItemTemplate>
                <li><span >
                    <%#Eval("PostTime") %></span><a href="<%#Eval("Url") %>"><%#Eval("Title") %></a></li>
            </ItemTemplate>
        </asp:Repeater>
    </ol>
</body>
</html>

“linq to xml操作XML的示例分析”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

台北市| 深泽县| 宁津县| 德格县| 柏乡县| 商南县| 若尔盖县| 永春县| 漯河市| 宁海县| 错那县| 广昌县| 伊吾县| 浦城县| 绥江县| 沈阳市| 南陵县| 兴宁市| 永宁县| 阿克苏市| 龙井市| 阳泉市| 邯郸县| 姜堰市| 长丰县| 阜南县| 怀来县| 清水县| 酒泉市| 广元市| 鹤壁市| 常山县| 山西省| 巧家县| 辽阳县| 泾川县| 星子县| 新竹市| 鹤岗市| 思南县| 定州市|