linq to xml(增删改查)

xml文件

<?xml version="1.0" encoding="utf-8"?>
<bookstore>
  <!--记录书本的信息-->
  <book Type="必修课" ISBN="7-111-19149-2">
    <title>数据结构</title>
    <author>严蔚敏</author>
    <price>30.00</price>
  </book>
  <book Type="必修课" ISBN="7-111-19149-3">
    <title>路由型与交换型互联网基础</title>
    <author>程庆梅</author>
    <price>27.00</price>
  </book>
  <book Type="选修课" ISBN="7-111-19149-1">
    <title>计算机操作系统</title>
    <author>张文明</author>
    <price>28</price>
  </book>
</bookstore>

加载本地xml

 string path = @"C:\Users\asus\Desktop\test.xml";
        XElement xe;
        public MainWindow()
        {
            InitializeComponent();
           xe= XElement.Load(path);
        }

自定义一个类

 public class BookModel
        {
            public BookModel()
            { }
            /// <summary>
            /// 所对应的课程类型
            /// </summary>
            private string bookType;

            public string BookType
            {
                get { return bookType; }
                set { bookType = value; }
            }

            /// <summary>
            /// 书所对应的ISBN号
            /// </summary>
            private string bookISBN;

            public string BookISBN
            {
                get { return bookISBN; }
                set { bookISBN = value; }
            }

            /// <summary>
            /// 书名
            /// </summary>
            private string bookName;

            public string BookName
            {
                get { return bookName; }
                set { bookName = value; }
            }

            /// <summary>
            /// 作者
            /// </summary>
            private string bookAuthor;

            public string BookAuthor
            {
                get { return bookAuthor; }
                set { bookAuthor = value; }
            }

            /// <summary>
            /// 价格
            /// </summary>
            private double bookPrice;

            public double BookPrice
            {
                get { return bookPrice; }
                set { bookPrice = value; }
            }
        
    }

  private void Button_Click(object sender, RoutedEventArgs e)
        {
            
            XElement record = new XElement(
               new XElement("book",
               new XAttribute("Type", "选修课"),
              new XAttribute("ISBN", "7-111-19149-1"),
               new XElement("title", "计算机操作系统"),
               new XElement("author", "张文明"),
              new XElement("price", 28.00)));
                         xe.Add(record);
                         xe.Save(path);
        }

  private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            foreach (var item in xe.Elements("book").Where(x => x.Attribute("ISBN").Value== "7-111-19149-1").ToList())
            {
                item.Remove();
            }
            xe.Save(path);
        }

 private void Button_Click_2(object sender, RoutedEventArgs e)
        {
            foreach (var item in xe.Elements("book").Where(x => x.Attribute("ISBN").Value == "7-111-19149-1").ToList())
            {
                item.Element("title").Value = "test";
            }
            xe.Save(path);
        }

 

 

   private void Button_Click_3(object sender, RoutedEventArgs e)
        {
            List<BookModel> bookModelList = new List<BookModel>();
            foreach (var item in xe.Elements("book").Where(x => x.Attribute("ISBN").Value == "7-111-19149-1").ToList())
            {
                
                BookModel bookModel = new BookModel();
                bookModel.BookType = item.Attribute("Type").Value;
                bookModel.BookISBN = item.Attribute("ISBN").Value;
                bookModel.BookName = item.Element("title").Value;
                bookModel.BookPrice =Convert.ToDouble( item.Element("price").Value);
                bookModel.BookAuthor = item.Element("author").Value;
                bookModelList.Add(bookModel);
            }
            dg1.ItemsSource = bookModelList;
        }

 参考博客:https://www.cnblogs.com/yuer20180726/p/10984234.html

posted @ 2020-06-23 10:49  当年小清新  阅读(...)  评论(...编辑  收藏