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 }