窗体就只用添加一个DataGridView控件就可以了。详细解释请参照上一篇中的借鉴曲终人散博客园的文档。
XML文档代码如下:test.xml
<?xml version="1.0" encoding="utf-8" ?>
<bookstore>
<book type="必修课" ISBN="7-111-19149-2">
<title>数据结构</title>
<author>李</author>
<price>30.2</price>
</book>
<book type="必修课" ISBN="7-111-19149-2">
<title>数据结构</title>
<author>李</author>
<price>30.2</price>
</book>
<book type="必修课" ISBN="7-111-19149-2">
<title>数据结构</title>
<author>李</author>
<price>30.2</price>
</book>
<book type="必修课" ISBN="7-111-19149-2">
<title>数据结构</title>
<author>李</author>
<price>30.2</price>
</book>
<book type="必修课" ISBN="7-111-19149-2">
<title>数据结构</title>
<author>李</author>
<price>30.2</price>
</book>
<book type="必修课" ISBN="7-111-19149-2">
<title>数据结构</title>
<author>李</author>
<price>30.2</price>
</book>
<book type="必修课" ISBN="7-111-19149-2">
<title>数据结构</title>
<author>李</author>
<price>30.2</price>
</book> </bookstore>
为了方便添加一个类:BookClass.cs
namespace dataGridViewTest
{
public class BookClass
{
public BookClass()
{ }
private string bookType; public string BookType
{
get { return bookType; }
set { bookType = value; }
}
private string bookISBN; public string BookISBN
{
get { return bookISBN; }
set { bookISBN = value; }
}
private string bookName; public string BookName
{
get { return bookName; }
set { bookName = value; }
}
private string bookAuthor; public string BookAuthor
{
get { return bookAuthor; }
set { bookAuthor = value; }
}
private double bookPrice; public double BookPrice
{
get { return bookPrice; }
set { bookPrice = value; }
}
}
}
然后在窗体得主代码中加入:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
List<BookClass> bookModeList=new List<BookClass>();
private void Form1_Load(object sender, EventArgs e)
{
XmlDocument doc = new XmlDocument();
doc.Load(@"..\..\test.xml"); XmlNode xn = doc.SelectSingleNode("bookstore");
XmlNodeList xnl = xn.ChildNodes;
foreach (XmlNode xn1 in xnl)
{
BookClass bookClass = new BookClass();
XmlElement xe = (XmlElement)xn1;
bookClass.BookISBN = xe.GetAttribute("ISBN").ToString();
bookClass.BookType = xe.GetAttribute("type").ToString(); XmlNodeList xn10 = xe.ChildNodes;
bookClass.BookName = xn10.Item().InnerText;
bookClass.BookAuthor = xn10.Item().InnerText;
bookClass.BookPrice = Convert.ToDouble(xn10.Item().InnerText);
bookModeList.Add(bookClass);
}
dataGridView1.DataSource=bookModeList;
}
}
最终效果如下: