C#中XML文件读写

  1 using System;
  2 using System.Collections.Generic;
  3 using System.ComponentModel;
  4 using System.Data;
  5 using System.Drawing;
  6 using System.Linq;
  7 using System.Text;
  8 using System.Windows.Forms;
  9 using System.Xml;
 10 
 11 
 12 namespace XMLDocumentTest
 13 {
 14     public partial class Form1 : Form
 15     {
 16         public Form1()
 17         {
 18         InitializeComponent();
 19         }
 20 
 21         private void DelElementTest()
 22         {
 23             XmlDocument doc = new XmlDocument();
 24             XmlReaderSettings settings = new XmlReaderSettings();
 25             settings.IgnoreComments = true;
 26             XmlReader xmlreader = XmlReader.Create("Book.xml", settings);
 27             doc.Load(xmlreader);
 28             xmlreader.Close();
 29 
 30             if (dataGridView1.SelectedRows.Count <= 0)
 31                 return;
 32             string ISBN = dataGridView1.SelectedRows[0].Cells[1].Value.ToString();
 33             string path = string.Format("/bookstore/book[@ISBN=\"{0}\"]", ISBN);
 34             XmlElement element = (XmlElement)doc.SelectSingleNode(path);
 35             if (element != null)
 36             {
 37                 element.ParentNode.RemoveChild(element);
 38             }
 39         }
 40 
 41             XmlDocument doc = new XmlDocument();
 42             private new void Load(object sender, EventArgs e)
 43             {
 44                   List<BookModel> bookmodelList = new List<BookModel>(); ;
 45                   XmlReaderSettings settings = new XmlReaderSettings();
 46                   settings.IgnoreComments = true;
 47                   XmlReader xmlreader = XmlReader.Create("Book.xml", settings);
 48                   doc.Load(xmlreader);
 49                   xmlreader.Close();
 50                   XmlNode root = doc.SelectSingleNode("bookstore");
 51                   XmlNodeList nodelist = root.ChildNodes;
 52                   foreach (XmlNode node in nodelist)
 53                   {
 54                         BookModel bookmodel = new BookModel();
 55                         XmlElement element = (XmlElement)node;
 56                         bookmodel.BookType = element.GetAttribute("Type");
 57                         bookmodel.BookISBN = element.GetAttribute("ISBN");
 58                         XmlNodeList children = element.ChildNodes;
 59                         bookmodel.BookName = children[0].InnerText;
 60                         bookmodel.BookAuthor = children[1].InnerText;
 61                         bookmodel.BookPrice = Convert.ToDouble(children[2].InnerText);
 62 
 63                         bookmodelList.Add(bookmodel);
 64 
 65                   }
 66                   dataGridView1.DataSource = bookmodelList;
 67             }
 68 
 69             private void AddBook(object sender, EventArgs e)
 70             {
 71                   XmlReaderSettings settings = new XmlReaderSettings();
 72                   settings.IgnoreComments = true;
 73                   XmlReader xmlreader = XmlReader.Create("Book.xml", settings);
 74                  doc.Load(xmlreader);
 75                   xmlreader.Close();
 76                   XmlNode root = doc.SelectSingleNode("bookstore");
 77 
 78                   XmlElement element = doc.CreateElement("book");
 79                   XmlAttribute attribute = doc.CreateAttribute("Type");
 80                   attribute.InnerText = "必修课";
 81                   element.SetAttributeNode(attribute);
 82                   attribute = doc.CreateAttribute("ISBN");
 83                   attribute.InnerText = "7-111-19149-4";
 84                   element.SetAttributeNode(attribute);
 85 
 86                   XmlElement childElement = doc.CreateElement("Title");
 87                   childElement.InnerText = "分布式框架";
 88                   element.AppendChild(childElement);
 89                   childElement = doc.CreateElement("Author");
 90                   childElement.InnerText = "brian";
 91                   element.AppendChild(childElement);
 92                   childElement = doc.CreateElement("Price");
 93                   childElement.InnerText = "250";
 94                   element.AppendChild(childElement);
 95 
 96                   root.AppendChild(element);
 97                   doc.Save("Book.xml");
 98                   Load(null, null);
 99                   dataGridView1.ClearSelection();
100             }
101 
102             private void Del(object sender, EventArgs e)
103             {
104                   XmlReaderSettings settings = new XmlReaderSettings();
105                   settings.IgnoreComments = true;
106                   XmlReader xmlreader = XmlReader.Create("Book.xml", settings);
107                   doc.Load(xmlreader);
108                   xmlreader.Close();
109 
110 
111                   if (dataGridView1.SelectedCells.Count <= 0)
112                       return;
113                   int selectedRowIndex = dataGridView1.SelectedCells[0].RowIndex;
114                   string ISBN = dataGridView1.Rows[selectedRowIndex].Cells[1].Value.ToString();
115                   string path = string.Format("/bookstore/book[@ISBN=\"{0}\"]",ISBN);
116                   XmlElement element = (XmlElement)doc.SelectSingleNode(path);
117                   if (element != null)
118                   {
119                        element.ParentNode.RemoveChild(element);
120                   }
121                   doc.Save("Book.xml");
122                   Load(null, null);
123                   dataGridView1.ClearSelection();
124                   }
125 
126             private void button4_Click(object sender, EventArgs e)
127             {
128                   this.dataGridView1.DataSource = null;
129             }
130        }
131 }        

 

转载于:https://www.cnblogs.com/xinxinBlog/p/5713463.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值