• Linq to XML


            XML 用处很广不做介绍,最近用到.NET 操作XML,比较了一下,感觉还是Linq  to XML比较简单,直观,易学。这里简单把Ling To XML 正删改查,写几个小例子。已加深对其理解。

               1. 新建,保存

                  

     /// <summary>
            /// 保存XML文件
            /// </summary>
            /// <param name="messageList">实体集合</param>
            public void Save(List<Message> messageList)
            {
                //声明一个XDocument
                XDocument xdo = null;
                //判断文件是否存在
                if (!File.Exists(Server.MapPath("data.xml")))
                {
                   //如果不存在新建一个文件
                    xdo = new XDocument(
                        new XElement("Message", "")
                        );
                   //将文件保存
                    xdo.Save(AppDomain.CurrentDomain.BaseDirectory + "data.xml");
                }
                else
                {
                   //如果文件存在加载文件
                    xdo = XDocument.Load(Server.MapPath("data.xml"));
                }
               //循环添加信息
                foreach (var message in messageList)
                {
                   //新建一个XElement(相当于一个节点)
                    XElement Message = new XElement("Node"
                        , new XElement("ID", message.id)
                        , new XElement("User", message.user)
                        , new XElement("Msg", message.text)
                        , new XElement("Date", message.time)
                        );
                   //把新创建的节点添加到Message节点下面
                    xdo.Element("Message").Add(Message);
                }
                //保存文件
                xdo.Save(Server.MapPath("data.xml"));
            }

               2.查询输出

                 

     /// <summary>
            /// 查询
            /// </summary>
            /// <param name="Top">返回信息的数目</param>
            /// <returns></returns>
            public string SelectXML(int Top)
            {
                XDocument xdo = null;
                List<XElement> xelnew = new List<XElement>();
                //判断文件是否存在
                if (File.Exists(Server.MapPath("data.xml")))
                {
                    //加载文件
                    XElement xel = XElement.Load(Server.MapPath("data.xml"));
                    //用Linq语法直接查询 (按时间排序去前Top条信息)
                    xelnew = (from element in xel.Elements()
                              orderby element.Element("Date").Value descending
                              select element)
                        .Take(Top).ToList();
                    xdo = new XDocument(
                        new XElement("Message", ""));
                    //添加信息
                    foreach (var item in xelnew)
                    {
                        xdo.Element("Message").Add(item);
                    }
                    //保存信息
    //AppDomain.CurrentDomain.BaseDirectory 为系统的根目录
    xdo.Save(AppDomain.CurrentDomain.BaseDirectory + "Selectdata.xml"); } return xdo.ToString(); }
  • 相关阅读:
    Java包(package)详解
    linux下c++sleep函数
    c++ 一个cpp文件如何调用另一个cpp文件已经定义的类?我不想重复定义
    c++ 断言
    C++类指针初始化
    面向对象编程
    CentOS 下通过命令登录Mysql
    (总结)CentOS Linux使用crontab运行定时任务详解
    【工具】Homebrew的安装及使用
    c++
  • 原文地址:https://www.cnblogs.com/jiangqiang/p/2790047.html
Copyright © 2020-2023  润新知