zoukankan      html  css  js  c++  java
  • Linq to XML增删改查

    直接上示例:

    XML文件:

    <?xml version="1.0" encoding="utf-8"?>
    <users>
      <user id="001">
        <name>Xi</name>
        <age>24</age>
        <sale>male</sale>
        <address>Haidian</address>
      </user>
    </users>

    User实体类:

        public class User
        {
            public string ID { get; set; }
            public string Name { get; set; }
            public string Age { get; set; }
            public string Sale { get; set; }
            public string Address { get; set; }
        }

    XML文件操作:

            #region Operate the xml file
    
            public void ConnectToXmml()
            {
                if (!File.Exists(path))
                {
                    XElement Users = new XElement("users", "");
                    Users.Save(path);
                }
            }
    
            public bool AddToXml(User user)
            {
                XElement Users = XElement.Load(path);
                XElement newUser = new XElement("user",
                    new XAttribute("id", user.ID),
                    new XElement("name", user.Name),
                    new XElement("age", user.Age),
                    new XElement("sale", user.Sale),
                    new XElement("address", user.Address)
                    );
                var u = Users.Elements("user").Where(uu => uu.Attribute("id").Value == user.ID);
                if (u.Count() > 0)
                    return false;
                else
                {
                    Users.Add(newUser);
                    Users.Save(path);
                    return true;                
                }
    
            }
    
            public bool UpdateToXml(User user)
            {
                XElement Users = XElement.Load(path);
                var uu = Users.Elements("user").Where(u => u.Attribute("id").Value == user.ID);
                if (uu.Count() > 0)
                {
                    XElement newUser = uu.First();
                    newUser.ReplaceNodes(
                        new XElement("name", user.Name),
                        new XElement("age", user.Age),
                        new XElement("sale", user.Sale),
                        new XElement("address", user.Address)
                        );
                    Users.Save(path);
                    return true;                
                }
                else
                    return false;
            }
    
            public bool DeleteFromXml(string ID)
            {
                XElement Users = XElement.Load(path);
                var uu = Users.Elements("user").Where(u => u.Attribute("id").Value == ID);
                if (uu.Count() > 0)
                {
                    uu.Remove();
                    Users.Save(path);
                    return true;                
                }
                else
                    return false;
    
            }
    
            public User Queryuser(string ID)
            {
                User newUser = null;
                XElement Users = XElement.Load(path);
                var uu = Users.Elements("user").Where(u => u.Attribute("id").Value == ID);
                if (uu.Count() > 0)
                {
                    XElement xUser = uu.First();
                    newUser = new User
                    {
                        ID = ID,
                        Name = xUser.Element("name").Value,
                        Age = xUser.Element("age").Value,
                        Sale = xUser.Element("sale").Value,
                        Address = xUser.Element("address").Value,
                    };
                }
                return newUser;
            }
    
            #endregion
  • 相关阅读:
    HDU 2544 最短路
    HDU 3367 Pseudoforest
    USACO 2001 OPEN
    HDU 3371 Connect the Cities
    HDU 1301 Jungle Roads
    HDU 1879 继续畅通工程
    HDU 1233 还是畅通工程
    HDU 1162 Eddy's picture
    HDU 5745 La Vie en rose
    HDU 5744 Keep On Movin
  • 原文地址:https://www.cnblogs.com/fengsiyi/p/3082007.html
Copyright © 2011-2022 走看看