C#中DataGridView 对XML文档的使用

时间:2022-06-14 13:07:37

窗体就只用添加一个DataGridView控件就可以了。详细解释请参照上一篇中的借鉴曲终人散博客园的文档。

XML文档代码如下:test.xml

 1 <?xml version="1.0" encoding="utf-8" ?>
 2 <bookstore>
 3   <book type="必修课" ISBN="7-111-19149-2">
 4     <title>数据结构</title>
 5     <author>李</author>
 6     <price>30.2</price>
 7   </book>
 8   <book type="必修课" ISBN="7-111-19149-2">
 9     <title>数据结构</title>
10     <author>李</author>
11     <price>30.2</price>
12   </book>
13   <book type="必修课" ISBN="7-111-19149-2">
14     <title>数据结构</title>
15     <author>李</author>
16     <price>30.2</price>
17   </book>
18   <book type="必修课" ISBN="7-111-19149-2">
19     <title>数据结构</title>
20     <author>李</author>
21     <price>30.2</price>
22   </book>
23   <book type="必修课" ISBN="7-111-19149-2">
24     <title>数据结构</title>
25     <author>李</author>
26     <price>30.2</price>
27   </book>
28   <book type="必修课" ISBN="7-111-19149-2">
29     <title>数据结构</title>
30     <author>李</author>
31     <price>30.2</price>
32   </book>
33   <book type="必修课" ISBN="7-111-19149-2">
34     <title>数据结构</title>
35     <author>李</author>
36     <price>30.2</price>
37   </book>
38   
39 </bookstore>

为了方便添加一个类:BookClass.cs

 1 namespace dataGridViewTest
 2 {
 3     public class BookClass
 4     {
 5         public BookClass()
 6         { }
 7         private string bookType;
 8 
 9         public string BookType
10         {
11             get { return bookType; }
12             set { bookType = value; }
13         }
14         private string bookISBN;
15 
16         public string BookISBN
17         {
18             get { return bookISBN; }
19             set { bookISBN = value; }
20         }
21         private string bookName;
22 
23         public string BookName
24         {
25             get { return bookName; }
26             set { bookName = value; }
27         }
28         private string bookAuthor;
29 
30         public string BookAuthor
31         {
32             get { return bookAuthor; }
33             set { bookAuthor = value; }
34         }
35         private double bookPrice;
36 
37         public double BookPrice
38         {
39             get { return bookPrice; }
40             set { bookPrice = value; }
41         }
42     }
43 }

然后在窗体得主代码中加入:

 1  public partial class Form1 : Form
 2     {
 3         public Form1()
 4         {
 5             InitializeComponent();
 6         }
 7         List<BookClass> bookModeList=new List<BookClass>();
 8         private void Form1_Load(object sender, EventArgs e)
 9         {
10             XmlDocument doc = new XmlDocument();
11             doc.Load(@"..\..\test.xml");
12 
13             XmlNode xn = doc.SelectSingleNode("bookstore");
14             XmlNodeList xnl = xn.ChildNodes;
15             foreach (XmlNode xn1 in xnl)
16             {
17                 BookClass bookClass = new BookClass();
18                 XmlElement xe = (XmlElement)xn1;
19                 bookClass.BookISBN = xe.GetAttribute("ISBN").ToString();
20                 bookClass.BookType = xe.GetAttribute("type").ToString();
21 
22                 XmlNodeList xn10 = xe.ChildNodes;
23                 bookClass.BookName = xn10.Item(0).InnerText;
24                 bookClass.BookAuthor = xn10.Item(1).InnerText;
25                 bookClass.BookPrice = Convert.ToDouble(xn10.Item(2).InnerText);
26                 bookModeList.Add(bookClass);
27             }
28             dataGridView1.DataSource=bookModeList;
29         }
30     }

最终效果如下:

C#中DataGridView 对XML文档的使用