程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> LINQ to XML,linqtoxml

LINQ to XML,linqtoxml

編輯:C#入門知識

LINQ to XML,linqtoxml


  LINQ to XML可以兩種方式和XML配合使用。第一種方式是作為簡化的XML操作API,第二種方式是使用LINQ查詢工具。下面我使用的是第一種方式。

  主要內容:用LINQ查詢語句對XML文件進行增刪改查。

  此方法優點:

    1.我們可以使用單一語句自頂向下創建XML樹。

    2.我們可以使用包含樹的XML文檔在內存中創建並操作XML。

    3.我們可以不適用Text子節點來創建和操作字符串節點。

    4.一個最大的不同(改進)是,在搜索一個XML樹時,不需要遍歷它。相反只需要查詢樹並讓它返回想要的結果。

  這裡我以一個記事本為例:記事本的內容包括,Id(編號),Title(標題),Content(內容)。

  下面是有關代碼:

      /// <summary>
        /// 創建XmlDocument並實例化
        /// </summary>
        XDocument xml = XDocument.Load(xmlPath);

  

     /// <summary>
        /// Xml文件路徑
        /// </summary>
        const string xmlPath =@"..\..\..\DAL\Notepad\NotepadXML\Notepad.xml";

  

  /// <summary>
        /// 添加記事本
        /// </summary>
        /// <param name="title">標題</param>
        /// <param name="content">內容</param>
        /// <returns>true:成功;false:失敗</returns>
        public bool addNotepad(string number,string title, string content)
        {
            try
            {
                XElement xd = xml.Root;
                XElement xm = new XElement(new XElement("Notepad",
                    new XElement("Id", number),
                    new XElement("Title", title),
                    new XElement("Content", content)));
                xd.Add(xm);
                xml.Save(xmlPath);
            }
            catch
            {
                return false;
            }
            return true;
        }
        #endregion

 

  /// <summary>
        /// 刪除一個記事本
        /// </summary>
        /// <param name="NotepadNumber">記事本編號</param>
        /// <returns>true:成功;false:失敗</returns>
        public bool delectTheNotepad(string NotepadNumber)
        {
            try
            {
                XElement xd = xml.Root;
                xd.Elements().First(n => n.Element("Id").Value == NotepadNumber).Remove();
                xd.Save(xmlPath);
            }
            catch
            {
                return false;
            }
            return true;
        }

 

   /// <summary>
        /// 修改記事本
        /// </summary>
        /// <param name="NotepadNumber">記事本編號id</param>
        /// <param name="title">標題</param>
        /// <param name="content">內容</param>
        /// <returns>true:成功;false:失敗</returns>
        public bool updateNotepad(string NotepadNumber, string title, string content)
        {
            try
            {
                XElement xd = xml.Root;
                XElement xd2 = xd.Elements().First(n => n.Element("Id").Value == NotepadNumber);
                xd2.Element("Title").Value = title;
                xd2.Element("Content").Value = content;
                xd.Save(xmlPath);
            }
            catch
            {
                return false;
            }
            return true;
        }

 

   /// <summary>
        /// 獲取一個文件裡的所有記事本
        /// </summary>
        /// <returns>一個文件裡的所有記事本</returns>
        public List<string[]> getAllNotepadInFile()
        {
            List<string[]> list = new List<string[]>();
            XElement xd = xml.Root;
            foreach (XElement item in xd.Elements())
            {
                list.Add(new string[]{
                    item.Element("Id").Value,
                    item.Element("Title").Value,
                    item.Element("Content").Value
                });
            }
            return list;
        }

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved