C#中DataGridView 对XML文档的使用

窗体就只用添加一个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(0).InnerText;
                bookClass.BookAuthor = xn10.Item(1).InnerText;
                bookClass.BookPrice = Convert.ToDouble(xn10.Item(2).InnerText);
                bookModeList.Add(bookClass);
            }
            dataGridView1.DataSource=bookModeList;
        }
    }

  最终效果如下:

 

posted on 2023-06-06 13:44  萧叔  阅读(113)  评论(0)    收藏  举报