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 }