zoukankan      html  css  js  c++  java
  • LinqToXML

    http://www.cnblogs.com/luckdv/articles/1728088.html?login=1

    http://de.cel.blog.163.com/blog/static/5145123620119983945167/

    Data.xml:

    <Students>
    <Student Id ="1">
    <Name>张三</Name>
    <Address>张三家地址</Address>
    </Student>
    <Student Id ="2">
    <Name>李四</Name>
    <Address>李四家地址</Address>
    </Student>
    </Students>

    XMLHelper:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Xml.Linq;
    using StudentManager.Models;
    
    namespace StudentManager
    {
        public class XmlHelper
        {
            private XElement Root;
    
            private List<Student> _StuList;
            public List<Student> StuList
            {
                get { return _StuList; }
                set { _StuList = value; }
            }
            string path = HttpRuntime.AppDomainAppPath.ToString() + "App_Data\Data.xml";
    
            public XmlHelper()
            {
                Root = Load();
            }
            public XElement Load()
            {
                XElement root = XElement.Load(path);
                return root;
            }
            public List<Student> GetAllStudents()
            {
                List<Student> list = new List<Student>();
                var students = Root.Elements("Student");
                foreach (var stu in students)
                {
                    Student s = new Student();
                    s.Id = Convert.ToInt32(stu.Attribute("Id").Value);
                    s.Name = stu.Element("Name").Value;
                    s.Address = stu.Element("Address").Value;
                    list.Add(s);
                }
                StuList = list;          
    
                return list;
            }
            public Student GetStudentById(int id)
            {
                Student stu = new Student();
    
                IEnumerable<XAttribute> es = Root.Elements("Student").Attributes("Id");
    
                //XElement el = es.FirstOrDefault(o => o.Value == id.ToString()).Parent;
                
                
                XElement e = Root.Elements("Student").Single(o => 
                {
                    bool flag = o.Attribute("Id").Value == id.ToString();
                    if (flag)
                    {                    
                        stu.Id = Convert.ToInt32(o.Attribute("Id").Value);
                        stu.Name = o.Element("Name").Value;
                        stu.Address = o.Element("Address").Value;
                    }
                    return flag;
                });            
    
                return stu;
            }
            public void DeleteStudentById(int id)
            {
                XElement t = (from stu in Root.Elements("Student")
                        where stu.Attribute("Id").Value == id.ToString()
                        select stu).Single() as XElement;
                t.Remove();           
                Root.Save(path);
            }
            public void UpdateStudent(Student stu)
            {
                //XElement e = Root.Elements("Student").Single(o => o.Attribute("Id").Value == stu.Id.ToString());
                //e.Element("Name").SetValue(stu.Name);
                //e.Element("Address").SetValue(stu.Address);
                //e.ReplaceWith(new XElement(stu.Name,stu.Address));
                Root.Elements("Student").Single(o => o.Attribute("Id").Value == stu.Id.ToString())
                    .ReplaceWith(new XElement("Student",new XAttribute("Id",stu.Id),
                        new XElement("Name",stu.Name),
                        new XElement("Address",stu.Address)));
                Root.Save(path);
            }
            public void CreateStudent(Student stu)
            {
                int a = GetMaxIndex();
                stu.Id = a;
    
                 XElement e = Root.Elements("Student").Last();
                 e.AddAfterSelf(new XElement("Student"
                     ,new XAttribute("Id",stu.Id)
                     ,new XElement("Name",stu.Name)
                     ,new XElement("Address",stu.Address)));
                Root.Save(path);
            }
    
            private int GetMaxIndex()
            {
                //int temp = 0;
                int maxIndex = Root.Elements("Student").Max(o => Convert.ToInt32(o.Attribute("Id").Value));
                //Root.Elements("Student").Max((o) =>
                //{
                //    temp = (int)o.Attribute("Id");
                //    return temp;
                //});
    
                return ++maxIndex;
            }
        }
    }
  • 相关阅读:
    积水路面Wet Road Materials 2.3
    门控时钟问题
    饮料机问题
    Codeforces Round #340 (Div. 2) E. XOR and Favorite Number (莫队)
    Educational Codeforces Round 82 (Rated for Div. 2)部分题解
    Educational Codeforces Round 86 (Rated for Div. 2)部分题解
    Grakn Forces 2020部分题解
    2020 年百度之星·程序设计大赛
    POJ Nearest Common Ancestors (RMQ+树上dfs序求LCA)
    算法竞赛进阶指南 聚会 (LCA)
  • 原文地址:https://www.cnblogs.com/pnljs/p/3724602.html
Copyright © 2011-2022 走看看