使用LINQ TO XML 创建xml文档,以及读取xml文档把内容显示到GridView例子

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用LINQ TO XML 创建xml文档,以及读取xml文档把内容显示到GridView例子相关的知识,希望对你有一定的参考价值。

首先,准备了一个Model类

技术分享
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace XML
{
    public class bookModel
    {
        public string bookType { get; set; }
        public string bookISBN { get; set; }
        public string bookName { get; set; }
        public string bookAuthor { get; set; }
        public double bookPrice { get; set; }
    }
}
实体类

这个是创建xml文档的方法

/// <summary>
        /// 使用LINQ To Xml 创建xml文档
        /// </summary>
        /// <param name="fileName">文件名</param>
        private void CreateXML(string fileName)
        {            
            var xdoc = new XDocument(
                new XElement("bookstore",                   //根节点
                new XElement("book",                        //子节点
                    new XAttribute("Type", "必修课")        //子节点属性
                    , new XAttribute("ISBN", "1.00.0001")   //子节点下的内容
                    , new XElement("title", "语文")
                    , new XElement("author", "张三")
                    , new XElement("price", "100.00")
                    )
                    ,
                new XElement("book",
                     new XAttribute("Type", "必修课")
                    , new XAttribute("ISBN", "1.00.0002")
                    , new XElement("title", "数学")
                    , new XElement("author", "李四")
                    , new XElement("price", "50.00")
                    )
                    ,
                new XElement("book",
                     new XAttribute("Type", "必修课")
                    , new XAttribute("ISBN", "1.00.0003")
                    , new XElement("title", "英语")
                    , new XElement("author", "王五")
                    , new XElement("price", "25.00")
                    )
                    ,
                new XElement("book",
                     new XAttribute("Type", "必修课")
                    , new XAttribute("ISBN", "1.00.0004")
                    , new XElement("title", "c语言")
                    , new XElement("author", "某某")
                    , new XElement("price", "1000")
                    )
                    ,
                new XElement("book",
                     new XAttribute("Type", "必修课")
                    , new XAttribute("ISBN", "1.00.0005")
                    , new XElement("title", "算法设计与分析")
                    , new XElement("author", "问问")
                    , new XElement("price", "230.00")
                    )
                    ,
                new XElement("book",
                     new XAttribute("Type", "选修课")
                    , new XAttribute("ISBN", "1.00.0008")
                    , new XElement("title", "计算机操作系统")
                    , new XElement("author", "飞")
                    , new XElement("price", "500")
                    )
                    )
                    );
            xdoc.Save(fileName);    //文件创建(保存)在当前项目解决方案的DeBug下
        }

  这个是读取xml文档以及把读取内容显示到Grid的方法

技术分享
private void LoadData()
        {
            try
            {                
                //加载文档并取得根节点
                XElement root = XElement.Load("book.xml");      
                //取得根节点下所有名为book的子节点以及子节点下的内容
                IEnumerable<XElement> targetNode = from target in root.Descendants("book") select target;
                List<bookModel> lst = new List<bookModel>();
                foreach (XElement node in targetNode)
                {
                    //实例Model,给字段赋值
                    bookModel model = new bookModel();
                    model.bookType = node.Attribute("Type").Value.ToString();
                    model.bookISBN = node.Attribute("ISBN").Value.ToString();
                    model.bookName = node.Element("title").Value.ToString();
                    model.bookAuthor = node.Element("author").Value.ToString();
                    model.bookPrice = Convert.ToDouble(node.Element("price").Value);
                    lst.Add(model);
                }                
                gdvBook.DataSource = lst;  

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
读取XML、显示Grid

 

以上是关于使用LINQ TO XML 创建xml文档,以及读取xml文档把内容显示到GridView例子的主要内容,如果未能解决你的问题,请参考以下文章

LINQ to XML概述

无法使用 LINQ to XML 循环遍历 xml 文档

Linq to XML - 更新/更改 XML 文档的节点

linq to xml 增删查改

在 C# 中使用 Linq to XML 在文档中搜索不同的 XML 结构

使用 linq to xml 从 xml 文档中删除 xmlns="something"