zoukankan      html  css  js  c++  java
  • LINQ to XML

      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 =@"......DALNotepadNotepadXMLNotepad.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;
            }

  • 相关阅读:
    uboot 环境变量
    U-boot的环境变量: bootcmd 和bootargs
    linux中的rootfs/initrd/ramfs/initramfs
    关于Linux启动时挂载rootfs的几种方式
    u-boot-2011.06在基于s3c2440开发板的移植之引导内核与加载根文件系统
    MySQL列出当前月的每一天
    SQL 标量函数-----日期函数 day() 、month()、year()
    mysql 中 DATE_ADD函数和 DATE_SUB函数用法
    mysql 中 DATE_ADD(date,INTERVAL expr type)
    mysql中date_add()函数的使用?
  • 原文地址:https://www.cnblogs.com/yanweiall/p/4264087.html
Copyright © 2011-2022 走看看