zoukankan      html  css  js  c++  java
  • 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(); }
  • 相关阅读:
    技术问答集录(二)(RPC和MVC框架&syn,lock区别)
    Zookeeper同一台机器集群部署
    Linux——JDK安装
    VirtualBox CentOs7 设置ssh连接

    ThreadLocal
    关于Centos 7上面的防火墙配置
    windows下使用命令行关闭进程
    强类型 弱类型语言 静态 动态语言
    无法启动此程序 ,因为计算机中丢失MSVCP120.dll
  • 原文地址:https://www.cnblogs.com/jiangqiang/p/2790047.html
Copyright © 2011-2022 走看看